]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/imagefile.php
Avoid spewing giant debug backtrace into exception in certain OStatus subscription...
[quix0rs-gnu-social.git] / lib / imagefile.php
index 7b047945528ec4dffa331b09849b9f2db82663fd..e4728774103860c9cbc6034f2850d7d86ca2216c 100644 (file)
@@ -60,6 +60,19 @@ class ImageFile
         $this->filepath = $filepath;
 
         $info = @getimagesize($this->filepath);
+
+        if (!(
+            ($info[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) ||
+            ($info[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) ||
+            $info[2] == IMAGETYPE_BMP ||
+            ($info[2] == IMAGETYPE_WBMP && function_exists('imagecreatefromwbmp')) ||
+            ($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) ||
+            ($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) {
+
+            throw new Exception(_('Unsupported image file format.'));
+            return;
+        }
+
         $this->type = ($info) ? $info[2]:$type;
         $this->width = ($info) ? $info[0]:$width;
         $this->height = ($info) ? $info[1]:$height;
@@ -97,19 +110,6 @@ class ImageFile
             return;
         }
 
-        if ($info[2] !== IMAGETYPE_GIF &&
-            $info[2] !== IMAGETYPE_JPEG &&
-            $info[2] !== IMAGETYPE_BMP &&
-            $info[2] !== IMAGETYPE_WBMP &&
-            $info[2] !== IMAGETYPE_XBM &&
-            $info[2] !== IMAGETYPE_XPM &&
-            $info[2] !== IMAGETYPE_PNG) {
-
-            @unlink($_FILES[$param]['tmp_name']);
-            throw new Exception(_('Unsupported image file format.'));
-            return;
-        }
-
         return new ImageFile(null, $_FILES[$param]['tmp_name']);
     }
 
@@ -159,9 +159,6 @@ class ImageFile
          case IMAGETYPE_XBM:
             $image_src = imagecreatefromxbm($this->filepath);
             break;
-         case IMAGETYPE_XPM:
-            $image_src = imagecreatefromxpm($this->filepath);
-            break;
          default:
             throw new Exception(_('Unknown file type'));
             return;
@@ -204,10 +201,6 @@ class ImageFile
             //we don't want to save XBM... it's a rare format that we can't guarantee clients will support
             //save png instead
             $this->type = IMAGETYPE_PNG;
-        } else if($this->type == IMAGETYPE_XPM) {
-            //we don't want to save XPM... it's a rare format that we can't guarantee clients will support
-            //save png instead
-            $this->type = IMAGETYPE_PNG;
         }
 
         $outname = Avatar::filename($this->id,