Cara Mengubah Saiz PNG dengan Latar Belakang Lutsinar Dengan Berkesan dalam PHP
Mengubah saiz imej PNG lutsinar dalam PHP boleh menjadi tugas yang mencabar, tetapi ia penting untuk mengekalkan kualiti imej. Kod yang anda berikan menghadapi masalah apabila warna latar belakang bertukar kepada hitam apabila saiz semula. Untuk membetulkannya, ikuti kod yang dikemas kini di bawah:
$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);
Perubahan utama:
Kemas kini:
Kod yang disediakan mengendalikan latar belakang lutsinar dengan kelegapan ditetapkan kepada 0. Walau bagaimanapun, untuk imej dengan nilai kelegapan antara 0 dan 100, ia tetap akan menghasilkan latar belakang hitam. Malangnya, tiada penyelesaian mudah dalam pustaka GD untuk mengendalikan kes penggunaan ini.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Ketelusan Apabila Mengubah Saiz PNG dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!