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

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

Susan Sarandon
发布: 2024-11-30 08:48:12
原创
349 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板