Add composer.json so we can validate php extension requirements
[surrogator.git] / surrogator.php
index fdbd38412aa983e06eb9aee4453793b438a18808..b397042d1603d24c129ee9adaa94fed8aea2a8de 100755 (executable)
@@ -136,7 +136,7 @@ if (count($files)) {
 } else {
     $fileInfos = new \RegexIterator(
         new \DirectoryIterator($rawDir),
-        '#^.+\.(png|jpg)$#'
+        '#^.+\.(png|jpg|svg|svgz)$#'
     );
 }
 foreach ($fileInfos as $fileInfo) {
@@ -202,6 +202,9 @@ foreach ($fileInfos as $fileInfo) {
  */
 function getHashes($fileName)
 {
+    //OpenIDs have their slashes "/" url-encoded
+    $fileName = rawurldecode($fileName);
+
     $fileNameNoExt = substr($fileName, 0, -strlen(strrpos($fileName, '.')) - 2);
     $emailAddress  = trim(strtolower($fileNameNoExt));
 
@@ -227,8 +230,15 @@ function createSquare($origPath, $ext, $targetPath, $maxSize)
         $imgOrig = imagecreatefrompng($origPath);
     } else if ($ext == 'jpg' || $ext == 'jpeg') {
         $imgOrig = imagecreatefromjpeg($origPath);
+    } else if ($ext == 'svg' || $ext == 'svgz') {
+        $imagickImg = new \Imagick();
+        $imagickImg->setBackgroundColor(new \ImagickPixel('transparent'));
+        $imagickImg->readImage($origPath);
+        $imagickImg->setImageFormat('png32');
+        $imgOrig = imagecreatefromstring($imagickImg->getImageBlob());
     } else {
         //unsupported format
+        logErr('Unsupported image format: ' . $origPath);
         return false;
     }