0

我正在使用以下内容通过 pngcrush 优化一些 png 图像:

exec(
    "pngcrush -q -blacken -brute -reduce -rem alla -rem text -rem time {$source} {$destination}",
    $output,
    $return_var
);

优化效果非常好,但对于某些图像,png 会在透明度所在的位置创建这些黑色块。

当我删除 -reduce 选项时问题就消失了,但是 PNG 优化做得很少,运行优化根本没有用。

我假设问题与透明度有关,那么有没有办法告诉 pngcrush,跳过 -reduce 命令,仅适用于没有透明度的图像?

4

2 回答 2

1

不要使用-blacken,因为它是您的问题的直接原因。

变更日志

添加了 -blacken 选项,可以在颜色类型为 4 或 6 的 PNG 文件中将任何完全透明像素的颜色样本更改为零,从而可能提高其压缩性。请注意,这是一个不可逆的有损变化:所有完全透明像素的底层颜色都将丢失,如果它们还不是黑色的话。

可能您的一些透明像素并不像看起来那么透明。

于 2014-01-29T16:22:27.203 回答
0

我在 v1.7.65 上遇到了这个问题,只有“-reduce”选项。相同的图像和命令在 v1.7.86 上运行良好。

于 2015-09-27T19:40:28.413 回答