Rumah > Artikel > pembangunan bahagian belakang > Mengapakah imagecreatefrompng() Menghasilkan Latar Belakang Hitam Daripada Kawasan Lutsinar?
imagecreatefrompng() Menghasilkan Latar Belakang Hitam Daripada Kawasan Lutsinar?
Dalam PHP, fungsi imagecreatefrompng() biasanya digunakan untuk berfungsi dengan PNG imej. Walau bagaimanapun, telah diperhatikan bahawa apabila menggunakan fungsi ini, ketelusan PNG mungkin ditukar kepada warna hitam pejal.
Untuk menyelesaikan isu ini, langkah berikut boleh dilaksanakan selepas mencipta kanvas baharu menggunakan imagecreatetruecolor():
Oleh melaksanakan pengubahsuaian ini, maklumat saluran alfa dalam imej PNG akan dikekalkan, menghalang penukarannya kepada latar belakang hitam. Kod yang dikemas kini akan menyerupai yang berikut:
<code class="php"><?php // ... Before imagecreatetruecolor() $dimg = imagecreatetruecolor($width_new, $height_new); // png ?: gif // start changes switch ($stype) { case 'gif': case 'png': // integer representation of the color black (rgb: 0,0,0) $background = imagecolorallocate($dimg , 0, 0, 0); // removing the black from the placeholder imagecolortransparent($dimg, $background); // turning off alpha blending (to ensure alpha channel information // is preserved, rather than removed (blending with the rest of the // image in the form of black)) imagealphablending($dimg, false); // turning on alpha channel information saving (to ensure the full range // of transparency is preserved) imagesavealpha($dimg, true); break; default: break; } // end changes $wm = $w/$nw; $hm = $h/$nh; // ...</code>
Atas ialah kandungan terperinci Mengapakah imagecreatefrompng() Menghasilkan Latar Belakang Hitam Daripada Kawasan Lutsinar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!