我正在使用pngcrush优化一些png图像:
exec(
"pngcrush -q -blacken -brute -reduce -rem alla -rem text -rem time {$source} {$destination}",
$output,
$return_var
);优化效果非常好,但对于一些图像,png会在透明度消失的地方创建这些黑色块。
当我删除-reduce选项时,问题就消失了,但是PNG优化做得很少,而且运行优化也没有任何用处。
我假设问题与透明度有关,那么有没有办法告诉pngcrush,跳过-reduce命令,只针对没有透明度的图像?
发布于 2014-01-30 00:22:27
不要使用-blacken,因为它是问题的直接原因。
来自the changelog
添加了-blacken选项,以允许在颜色类型为4或6的PNG文件中将任何全透明像素的颜色样本更改为零,从而潜在地提高其可压缩性。请注意,这是一个不可逆转的有损更改:所有完全透明像素的底层颜色都会丢失,如果它们还不是黑色的话。
可能你的一些透明像素并不像它们看起来那样透明。
发布于 2015-09-28 03:40:28
我在v1.7.65中只使用了"-reduce“选项就遇到了这个问题。相同的图像和命令在v1.7.86上运行良好。
https://stackoverflow.com/questions/21425636
复制相似问题