Suppress warnings regarding JPEG images
authorMatthias Schmidt <gravatronics@live.com>
Tue, 31 May 2016 18:40:07 +0000 (20:40 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Tue, 31 May 2016 18:40:07 +0000 (20:40 +0200)
wcfsetup/install/files/lib/system/image/adapter/GDImageAdapter.class.php

index 1ab8ed2cb0eb064ec3c4befaec4b5c778ce14675..edc253aff8eb433e24f06b51cacd5c8b8c0fc3a3 100644 (file)
@@ -50,6 +50,14 @@ class GDImageAdapter implements IImageAdapter {
         */
        protected $width = 0;
        
+       /**
+        * GDImageAdapter constructor.
+        */
+       public function __construct() {
+               // suppress warnings like "recoverable error: Invalid SOS parameters for sequential JPEG"
+               @ini_set('gd.jpeg_ignore_warning', 1);
+       }
+       
        /**
         * @see \wcf\system\image\adapter\IImageAdapter::load()
         */
@@ -81,7 +89,11 @@ class GDImageAdapter implements IImageAdapter {
                        break;
                        
                        case IMAGETYPE_JPEG:
-                               $this->image = imageCreateFromJpeg($file);
+                               // suppress warnings and properly handle errors
+                               $this->image = @imageCreateFromJpeg($file);
+                               if ($this->image === false) {
+                                       throw new SystemException("Could not read jpeg image '".$file."'.");
+                               }
                        break;
                        
                        case IMAGETYPE_PNG: