使用imagecreatefrompng() 將PNG 圖像變成黑色
問題:
用戶遇到了使用GD 庫建立縮圖時,PHP 的imagecreatefrompng() 函數將 PNG 映像中的透明區域轉換為純黑色的問題。
PHP 縮圖建立程式碼:
<code class="php">function cropImage($nw, $nh, $source, $stype, $dest) { // ... switch($stype) { case 'png': $simg = imagecreatefrompng($source); break; // ... } // ... }</code>
解:
要解決此問題,需要在imagecreate () 先前執行其他步驟,特別是對於PNG 和GIF 影像。這些步驟涉及:
<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>
透過實施這些附加步驟,在使用 imagecreatefrompng() 建立縮圖時將保留 PNG 影像中的透明區域。
以上是為什麼在 PHP 中使用「imagecreatefrompng()」PNG 映像會變黑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!