如何在PHP 中有效調整透明背景PNG 的大小
在PHP 中調整透明PNG 影像的大小可能是一項具有挑戰性的任務,但這對於保持影像品質。您提供的程式碼遇到一個問題,即調整大小時背景顏色會變成黑色。要解決此問題,請按照以下更新的程式碼進行操作:
$this->image = imagecreatefrompng($filename); imagealphablending($this->image, false); imagesavealpha($this->image, true); $newImage = imagecreatetruecolor($width, $height); // Allocate a new transparent color and enable alpha blending $background = imagecolorallocatealpha($newImage, 255, 255, 255, 127); imagefilledrectangle($newImage, 0, 0, $width, $height, $background); imagealphablending($newImage, true); imagesavealpha($newImage, true); // Resize the image with transparent background preserved imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $newImage; imagepng($this->image, $filename);
主要變更:
更新:
更新:更新:更新:更新:更新:設定為0 的透明背景。但是,對於不透明度值在 0 到 100 之間的影像,它仍然會產生黑色背景。不幸的是,GD 庫中沒有直接的解決方案來處理這個用例。以上是在 PHP 中調整 PNG 大小時如何保持透明度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!