Imagecreatefrompng() 渲染黑色背景而不是透明
提供的使用GD 庫產生縮圖的PHP 程式碼遇到了PNG 透明度的問題被替換為純黑色。為了解決這個問題,需要修改程式碼以保留 PNG 映像的 Alpha 通道資訊。
在 CropImage() 函數中,在 imagecreatetruecolor() 呼叫之後,應實現以下修改:
<code class="php">switch ($stype) { case 'gif': case 'png': // Allocate black color and set as background $background = imagecolorallocate($dimg, 0, 0, 0); // Set black as transparent imagecolortransparent($dimg, $background); // Disable alpha blending to preserve transparency imagealphablending($dimg, false); // Enable alpha channel saving to preserve full transparency range imagesavealpha($dimg, true); break; default: break; }</code>
這些修改可確保刪除黑色背景並保留 PNG 的透明度。禁用 Alpha 混合可防止 PNG 的透明區域與黑色混合。啟動 Alpha 通道保存可保證保留完整的透明度範圍。
透過實現這些程式碼修改,縮圖產生器應正確保持 PNG 透明度,渲染透明背景而不是黑色。
以上是為什麼「imagecreatefrompng()」渲染黑色背景而不是透明背景?的詳細內容。更多資訊請關注PHP中文網其他相關文章!