使用PHP在浏览器上重新渲染PNG-24到PNG-8?

时间:2012-02-24 16:57:34

标签: php png

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

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

<img src="image/path/lorem.png">

然后这将在Web浏览器上返回PNG-8版本:

<img src="convert-png24-to-pnp8.php?image/path/lorem.png">

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

3 个答案:

答案 0 :(得分:0)

您可以使用ImageMagick转换图片。

将PNG-24转换为PNG-8:http://www.whoisgregg.com/imagemagick/index.html

答案 1 :(得分:0)

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

http://pngquant.org/

答案 2 :(得分:0)

基于上面的SERPRO答案,使用ImageMagick你可以做类似的事情:

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

这是未经测试的,但应该给你一些东西继续下去。 ImageMagick可以导出的格式如下所示:http://www.imagemagick.org/script/formats.php