在浏览器上使用PHP将PNG-24重新呈现为PNG-8?

在浏览器上使用PHP将PNG-24重新呈现为PNG-8?,php,png,Php,Png,是否有PHP函数可以接受PNG-24的图像路径作为参数,然后在web浏览器上返回PNG-8版本 例如,原始PNG-24的HTML代码为: 然后在web浏览器上返回PNG-8版本: 我要转换的PNG-24图像没有半透明像素,但有完全透明的像素。您可以使用转换图像 将PNG-24转换为PNG-8:如果您可以调用shell,那么您可以使用pngquant来完成这项工作。这将(批量)为您将PNG-24s转换为PNG-8s 基于上述SERPRO的答案,使用ImageMagick,您可以执行以下操作:

是否有PHP函数可以接受PNG-24的图像路径作为参数,然后在web浏览器上返回PNG-8版本

例如,原始PNG-24的HTML代码为:

然后在web浏览器上返回PNG-8版本:


我要转换的PNG-24图像没有半透明像素,但有完全透明的像素。

您可以使用转换图像


将PNG-24转换为PNG-8:

如果您可以调用shell,那么您可以使用
pngquant
来完成这项工作。这将(批量)为您将PNG-24s转换为PNG-8s


基于上述SERPRO的答案,使用ImageMagick,您可以执行以下操作:

$image = new Imagick("mypng24.png");
$image->setImageFormat("png8");
header( "Content-Type: image/png" );
echo $image;

这是未经测试的,但应该给你一些东西继续下去。ImageMagick可以导出的格式如下所示:

谢谢。在第一个链接中的这么多类中,我没有找到一个用于转换为PNG-8的类。你能给我指一下吗?谢谢。但是,这个方法目前超出了我的能力。好吧,看起来像是ImageMagick。我将添加另一个带有示例代码的答案。