圖片縮圖中的PNG 透明度遺失
使用imagecreatefrompng() 函數透過GD 庫建立縮圖時,使用者遇到了以下問題: PNG 的透明背景被替換為純黑色。為了解決這個問題,讓我們檢查程式碼並確定解決方案。
提供的程式碼有效地調整影像大小並將其儲存為 JPEG。然而,問題在於使用 imagecreatetruecolor() 函數初始化目標圖像 ($dimg)。要保持 PNG 影像的透明度,需要執行其他步驟。這是程式碼的修改版本:
<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>
透過加入這些步驟,我們確保:
以上是為什麼使用 imagecreatefrompng() 時 PNG 縮圖會失去透明度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!