imagecreatefrompng() 產生黑色背景而不是透明區域?
在 PHP 中,imagecreatefrompng() 函數通常用於處理 PNG映像。然而,據觀察,使用此函數時,PNG 透明度可能會轉換為純黑色。
要解決此問題,可以在使用imagecreatetruecolor() 建立新畫布後執行以下步驟:
透過實施這些修改後,PNG 影像中的 Alpha 通道資訊將被保留,從而防止其轉換為黑色背景。更新後的程式碼將類似以下:
<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>
以上是為什麼 imagecreatefrompng() 產生黑色背景而不是透明區域?的詳細內容。更多資訊請關注PHP中文網其他相關文章!