X-Git-Url: https://git.stricted.de/?a=blobdiff_plain;f=wcfsetup%2Finstall%2Ffiles%2Flib%2Fsystem%2Fimage%2Fadapter%2FGDImageAdapter.class.php;h=9d61e08f67ac7047db35861509ea6eb8331742f5;hb=58b2ac9392d2677c4becd317c89844d3e7ef28e6;hp=5ffad1643824055f0135486255984268f62ccf5b;hpb=3354b09e5ebcbc52b7c208b46a83a8430c343bc6;p=GitHub%2FWoltLab%2FWCF.git diff --git a/wcfsetup/install/files/lib/system/image/adapter/GDImageAdapter.class.php b/wcfsetup/install/files/lib/system/image/adapter/GDImageAdapter.class.php index 5ffad16438..9d61e08f67 100644 --- a/wcfsetup/install/files/lib/system/image/adapter/GDImageAdapter.class.php +++ b/wcfsetup/install/files/lib/system/image/adapter/GDImageAdapter.class.php @@ -111,9 +111,16 @@ class GDImageAdapter implements IImageAdapter { } break; + case IMAGETYPE_WEBP: + // suppress warnings and properly handle errors + $this->image = @imagecreatefromwebp($file); + if ($this->image === false) { + throw new SystemException("Could not read webp image '".$file."'."); + } + break; + default: throw new SystemException("Could not read image '".$file."', format is not recognized."); - break; } } @@ -348,6 +355,9 @@ class GDImageAdapter implements IImageAdapter { else if ($this->type == IMAGETYPE_PNG) { imagepng($image); } + else if ($this->type == IMAGETYPE_WEBP) { + imagewebp($image); + } else if (function_exists('imageJPEG')) { imagejpeg($image, null, 90); }