首页 >后端开发 >php教程 >使用 PHP GDlib 调整 PNG 大小时如何保持透明度?

使用 PHP GDlib 调整 PNG 大小时如何保持透明度?

Susan Sarandon
Susan Sarandon原创
2024-11-30 08:48:12285浏览

How Can I Preserve Transparency When Resizing PNGs with PHP GDlib?

使用 PHP GDlib 保持调整大小的 PNG 的透明度

使用 PHP GDlib 重新采样 PNG 图像时,通常会遇到透明区域的问题原始图像中填充有纯色。即使使用 imagesavealpha() 函数,也会发生这种情况。

为了确保在重新采样的图像中保留透明度,必须执行以下附加步骤:

  1. 设置图像 Alpha 混合使用 imagealphablending($targetImage, false) 将模式设置为 false,其中 $targetImage 是重新采样的图像。
  2. 将图像 alpha 保存设置为 true using imagesavealpha($targetImage, true)。

示例代码:

以下修改后的代码演示了正确的方法:

$uploadTempFile = $myField['tmp_name'];
list($uploadWidth, $uploadHeight, $uploadType) = getimagesize($uploadTempFile);

$srcImage = imagecreatefrompng($uploadTempFile);

$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled($targetImage, $srcImage, 0, 0, 0, 0, 128, 128, $uploadWidth, $uploadHeight);

imagepng($targetImage, 'out.png', 9);

通过合并这些附加步骤,调整大小的 PNG 图像的透明度将得以保持,从而能够保留透明元素,例如徽标或背景图片。

以上是使用 PHP GDlib 调整 PNG 大小时如何保持透明度?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn