diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index fd75e51b63..0fb284259a 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -303,6 +303,10 @@ class Generator { private function generatePreview(ISimpleFolder $previewFolder, ISimpleFile $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight) { $preview = $this->helper->getImage($maxPreview); + if (!$preview->valid()) { + throw new \InvalidArgumentException('Failed to generate preview, failed to load image'); + } + if ($crop) { if ($height !== $preview->height() && $width !== $preview->width()) { //Resize @@ -325,6 +329,7 @@ class Generator { $preview->resize(max($width, $height)); } + $path = $this->generatePath($width, $height, $crop); try { $file = $previewFolder->newFile($path); diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index e26148bdf1..120b19d1cf 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -563,7 +563,7 @@ class OC_Image implements \OCP\IImage { case IMAGETYPE_JPEG: if (imagetypes() & IMG_JPG) { if (getimagesize($imagePath) !== false) { - $this->resource = imagecreatefromjpeg($imagePath); + $this->resource = @imagecreatefromjpeg($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, JPG image not valid: ' . $imagePath, array('app' => 'core')); } @@ -573,7 +573,7 @@ class OC_Image implements \OCP\IImage { break; case IMAGETYPE_PNG: if (imagetypes() & IMG_PNG) { - $this->resource = imagecreatefrompng($imagePath); + $this->resource = @imagecreatefrompng($imagePath); // Preserve transparency imagealphablending($this->resource, true); imagesavealpha($this->resource, true); @@ -583,14 +583,14 @@ class OC_Image implements \OCP\IImage { break; case IMAGETYPE_XBM: if (imagetypes() & IMG_XPM) { - $this->resource = imagecreatefromxbm($imagePath); + $this->resource = @imagecreatefromxbm($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, XBM/XPM images not supported: ' . $imagePath, array('app' => 'core')); } break; case IMAGETYPE_WBMP: if (imagetypes() & IMG_WBMP) { - $this->resource = imagecreatefromwbmp($imagePath); + $this->resource = @imagecreatefromwbmp($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, WBMP images not supported: ' . $imagePath, array('app' => 'core')); }