gpt4 book ai didi

php - 如何使用 PHP GD 库将 PNG 转换为 8 位 PNG

转载 作者:可可西里 更新时间:2023-11-01 13:06:39 27 4
gpt4 key购买 nike

我想编写一个例程,将 PNG 图像路径作为参数并将该图像转换为 8 位 PNG 图像。我需要为此使用 PHP GD 库。

最佳答案

要将任何 PNG 图像转换为 8 位 PNG,请使用我刚刚创建的这个函数

函数convertPNGto8bitPNG()

 function convertPNGto8bitPNG ($sourcePath, $destPath) {

$srcimage = imagecreatefrompng($sourcePath);
list($width, $height) = getimagesize($sourcePath);

$img = imagecreatetruecolor($width, $height);
$bga = imagecolorallocatealpha($img, 0, 0, 0, 127);
imagecolortransparent($img, $bga);
imagefill($img, 0, 0, $bga);
imagecopy($img, $srcimage, 0, 0, 0, 0, $width, $height);
imagetruecolortopalette($img, false, 255);
imagesavealpha($img, true);

imagepng($img, $destPath);
imagedestroy($img);

}

参数

  • $sourcePath - 源 PNG 文件的路径
  • $destPath - 目标 PNG 文件的路径

注意事项

我建议在运行此代码之前确保 $sourcePath 存在并且 $destPath 可写。也许这个功能不适用于一些透明图像。

用法

convertPNGto8bitPNG ('pfc.png', 'pfc8bit.png');

示例(原始 -> 8 位)

(来源:pfc.png)原始 PNG 图片

enter image description here

(目标:pfc8bit.png)转换后的 PNG 图像(8 位)

enter image description here

希望有人觉得这有帮助。

关于php - 如何使用 PHP GD 库将 PNG 转换为 8 位 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5752514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com