Imej PNG Menjadi Hitam dengan imagecreatefrompng()
Masalah:
Pengguna telah menghadapi isu di mana fungsi imagecreatefrompng() PHP menukar kawasan lutsinar dalam imej PNG kepada hitam pejal apabila mencipta lakaran kenit menggunakan perpustakaan GD.
Kod Penciptaan Gambar Kecil PHP:
<code class="php">function cropImage($nw, $nh, $source, $stype, $dest) { // ... switch($stype) { case 'png': $simg = imagecreatefrompng($source); break; // ... } // ... }</code>
Penyelesaian:
Untuk menyelesaikan isu ini, langkah tambahan sebelum imagecreatetruecolor() diperlukan, khusus untuk imej PNG dan GIF. Langkah-langkah ini melibatkan:
<code class="php">// Before imagecreatetruecolor() $dimg = imagecreatetruecolor($width_new, $height_new); // png ?: gif // Additional steps for PNG and GIF switch ($stype) { case 'gif': case 'png': // Black color $background = imagecolorallocate($dimg , 0, 0, 0); // Remove black from placeholder imagecolortransparent($dimg, $background); // Turn off alpha blending imagealphablending($dimg, false); // Turn on alpha channel saving imagesavealpha($dimg, true); break; default: break; }</code>
Dengan melaksanakan langkah tambahan ini, kawasan lutsinar dalam imej PNG akan dikekalkan apabila membuat lakaran kecil menggunakan imagecreatefrompng().
Atas ialah kandungan terperinci Mengapakah imej PNG menjadi hitam dengan `imagecreatefrompng()` dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!