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

「-reduce」オプションだけを使用して、v1.7.65 でこの問題が発生しました。v1.7.86 では、同じイメージとコマンドが正常に機能しました。

于 2015-09-27T19:40:28.413 に答える