图像缩略图中的 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中文网其他相关文章!