From df58a663ad3e23c3e981b89b5ac6798adc2e3680 Mon Sep 17 00:00:00 2001 From: akhan Date: Fri, 20 Feb 2026 21:43:01 +0500 Subject: [PATCH] Safely destroy GD image resource. --- src/Convert/Converters/Gd.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/Convert/Converters/Gd.php b/src/Convert/Converters/Gd.php index 2303c5e..5cd1261 100644 --- a/src/Convert/Converters/Gd.php +++ b/src/Convert/Converters/Gd.php @@ -160,10 +160,10 @@ private function makeTrueColorUsingWorkaround(&$image) } } if ($success) { - imagedestroy($image); + $this->destroyImage($image); $image = $dst; } else { - imagedestroy($dst); + $this->destroyImage($dst); } return $success; } else { @@ -321,7 +321,7 @@ protected function errorHandlerWhileCreatingWebP($errno, $errstr, $errfile, $err */ protected function destroyAndRemove($image) { - imagedestroy($image); + $this->destroyImage($image); if (file_exists($this->destination)) { @unlink($this->destination); } @@ -531,6 +531,22 @@ protected function doActualConvert() $this->tryConverting($image); // End of story - imagedestroy($image); + $this->destroyImage($image); + } + + /** + * Safely destroy GD image resource. + * + * imagedestroy() has no effect since PHP 8.0 and is deprecated in PHP 8.5. + * This wrapper avoids deprecation warnings while keeping backward compatibility. + * + * @param resource|\GdImage|null $image + * @return void + */ + private function destroyImage($image) + { + if (PHP_VERSION_ID < 80000 && is_resource($image)) { + imagedestroy($image); + } } }