Skip to content

Commit 0f3acc1

Browse files
committed
Image::save() and send() throws ImageException on failure (BC break)
1 parent 2198d72 commit 0f3acc1

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

src/Utils/Image.php

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -512,9 +512,10 @@ public function place(Image $image, $left = 0, $top = 0, int $opacity = 100): se
512512
* @param string filename
513513
* @param int quality (0..100 for JPEG and WEBP, 0..9 for PNG)
514514
* @param int optional image type
515-
* @return bool TRUE on success or FALSE on failure.
515+
* @return void
516+
* @throws ImageException
516517
*/
517-
public function save(string $file = NULL, int $quality = NULL, int $type = NULL): bool
518+
public function save(string $file = NULL, int $quality = NULL, int $type = NULL)
518519
{
519520
if ($type === NULL) {
520521
$extensions = array_flip(self::$formats) + ['jpg' => self::JPEG];
@@ -528,22 +529,29 @@ public function save(string $file = NULL, int $quality = NULL, int $type = NULL)
528529
switch ($type) {
529530
case self::JPEG:
530531
$quality = $quality === NULL ? 85 : max(0, min(100, (int) $quality));
531-
return imagejpeg($this->image, $file, $quality);
532+
$success = imagejpeg($this->image, $file, $quality);
533+
break;
532534

533535
case self::PNG:
534536
$quality = $quality === NULL ? 9 : max(0, min(9, (int) $quality));
535-
return imagepng($this->image, $file, $quality);
537+
$success = imagepng($this->image, $file, $quality);
538+
break;
536539

537540
case self::GIF:
538-
return imagegif($this->image, $file);
541+
$success = imagegif($this->image, $file);
542+
break;
539543

540544
case self::WEBP:
541545
$quality = $quality === NULL ? 80 : max(0, min(100, (int) $quality));
542-
return imagewebp($this->image, $file, $quality);
546+
$success = imagewebp($this->image, $file, $quality);
547+
break;
543548

544549
default:
545550
throw new Nette\InvalidArgumentException("Unsupported image type '$type'.");
546551
}
552+
if (!$success) {
553+
throw new ImageException(error_get_last()['message']);
554+
}
547555
}
548556

549557

@@ -582,9 +590,10 @@ public function __toString(): string
582590
* Outputs image to browser.
583591
* @param int image type
584592
* @param int quality (0..100 for JPEG and WEBP, 0..9 for PNG)
585-
* @return bool TRUE on success or FALSE on failure.
593+
* @return void
594+
* @throws ImageException
586595
*/
587-
public function send(int $type = self::JPEG, int $quality = NULL): bool
596+
public function send(int $type = self::JPEG, int $quality = NULL)
588597
{
589598
if (!isset(self::$formats[$type])) {
590599
throw new Nette\InvalidArgumentException("Unsupported image type '$type'.");

0 commit comments

Comments
 (0)