首页 > 后端开发 > php教程 > 如何在 PHP 中调整 PNG 的透明度而不丢失 Alpha?

如何在 PHP 中调整 PNG 的透明度而不丢失 Alpha?

Susan Sarandon
发布: 2024-11-18 02:07:01
原创
384 人浏览过

How to Resize PNGs with Transparency in PHP Without Losing Alpha?

如何在 PHP 中调整具有透明度的 PNG 图像而不丢失 Alpha

尝试在 PHP 中调整具有透明度的 PNG 图像大小时,许多用户遇到问题背景颜色变为黑色。本文将解决这个问题并提供解决方案。

关键在于在分配透明度之前适当设置图像混合模式和 Alpha 通道保存标志。

以下是更新的代码:

function resizePNG($image, int $newWidth, int $newHeight) {
    // Create a new true color image
    $newImg = imagecreatetruecolor($newWidth, $newHeight);

    // Disable blending and enable alpha saving
    imagealphablending($newImg, false);
    imagesavealpha($newImg, true);

    // Allocate transparent color
    $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);

    // Fill the new image with transparent color
    imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent);

    // Get the width and height of the original image
    $src_w = imagesx($image);
    $src_h = imagesy($image);

    // Copy and resize the original image onto the new image
    imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h);

    // Return the new resized image
    return $newImg;
}
登录后复制

使用此更新的代码,可以在不影响 Alpha 通道的情况下调整具有透明度的 PNG 图像的大小,从而确保保留透明度。

以上是如何在 PHP 中调整 PNG 的透明度而不丢失 Alpha?的详细内容。更多信息请关注PHP中文网其他相关文章!

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