使用imagecreatefrompng和imagepng压缩的奇怪的人工制品

时间:2014-06-18 17:20:04

标签: php image png gd

我的简单目标是使用以下代码压缩PNG文件:

$image = imagecreatefrompng("test.png");
imagepng($image, "result.png", 9, PNG_ALL_FILTERS);

我也试过零和默认压缩,结果相同。

原始文件是这样的:

source image

但是某些(不是全部)图像的结果是这样的:

broken result

唯一可以产生良好效果的方法是使用以下附加代码:

imagealphablending($image, false);
imagesavealpha($image, true);

为什么这种简单的图像处理会产生这种伪影?通过保存完整的alpha信息,我是否会遇到一些浏览器或不需要的文件大小的麻烦?

还有其他万无一失的解决方案,它会无损压缩png文件吗?

0 个答案:

没有答案