使用 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>
解决方案:
要解决此问题,需要在 imagecreatetruecolor() 之前执行其他步骤,特别是对于 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中文网其他相关文章!