Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Imej Kecil PNG Hilang Ketelusan Apabila Menggunakan imagecreatefrompng()?
Kehilangan Ketelusan PNG dalam Imej Kecil Imej
Apabila mencipta lakaran kecil dengan perpustakaan GD menggunakan fungsi imagecreatefrompng(), pengguna telah menghadapi isu di mana latar belakang lutsinar PNG digantikan dengan warna hitam pejal. Untuk menangani perkara ini, mari kita periksa kod dan kenal pasti penyelesaian.
Kod yang disediakan mengubah saiz imej dengan berkesan dan menyimpannya sebagai JPEG. Walau bagaimanapun, masalahnya terletak pada permulaan imej destinasi ($dimg) menggunakan fungsi imagecreatetruecolor(). Untuk mengekalkan ketelusan dalam imej PNG, langkah tambahan diperlukan. Berikut ialah versi kod yang diubah suai:
<code class="php">$dimg = imagecreatetruecolor($width_new, $height_new); // Start changes for PNG transparency switch ($stype) { case 'gif': case 'png': // Define black as a color $background = imagecolorallocate($dimg, 0, 0, 0); // Make black transparent imagecolortransparent($dimg, $background); // Disable blending to avoid mixing black with the image imagealphablending($dimg, false); // Enable alpha channel preservation imagesavealpha($dimg, true); break; default: break; } // End changes $wm = $w/$nw; $hm = $h/$nh;</code>
Dengan menambahkan langkah ini, kami memastikan bahawa:
Atas ialah kandungan terperinci Mengapa Imej Kecil PNG Hilang Ketelusan Apabila Menggunakan imagecreatefrompng()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!