要将任何PNG图像转换为8位PNG,请使用此功能,我刚创建
函数convertPNGto8bitPNG()
function convertPNGto8bitPNG ($sourcePath,$destPath) {
$srcimage = imagecreatefrompng($sourcePath);
list($width,$height) = getimagesize($sourcePath);
$img = imagecreatetruecolor($width,$height);
$bga = imagecolorallocatealpha($img,127);
imagecolortransparent($img,$bga);
imagefill($img,$bga);
imagecopy($img,$srcimage,$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图像
(目的地:pfc8bit.png)CONVERTED PNG IMAGE(8位)
希望有人觉得这很有帮助.