web-dev-qa-db-ja.com

imagemagickのサイズ変更と品質PNG

私のアプリケーションでは、PNGファイルのサイズを変更して品質を低下させる必要があります。

フルサイズのPNGは3100x4400pxで、2,20MBのディスク容量を使用します。

次のコマンドを実行すると:

convert -resize 1400 -quality 10 input.png output.png

画像は5,33MBのディスク容量を使用して1400x2000にサイズ変更されます。

だから私の質問は:ファイルサイズをどのように減らすことができますか?

19
jorgen
  1. ポスタリゼーションを使用すると、PNGの品質をさらに下げることができます。

    https://github.com/pornel/mediancut-posterizerMac GUI

    これは、zlibがより適切に圧縮できるようにする非可逆操作です。

  2. pngquant を使用して画像をPNG8に変換します。

    画像は256色に減るので、品質は画像の種類によって異なりますが、pngquantは非常に優れたパレットを作成するので、どれほど頻繁に機能するかに驚くかもしれません。

  3. Zopfli-png または AdvPNG を使用して、画像をより適切に再圧縮します。

    これはロスレスであり、CPUサイクルに余裕がある場合は、すべてのイメージに推奨されます。

11
Kornel

ヘルプページによると、PNGで使用される-qualityオプションはzlibの圧縮レベルを設定します。(おおよそ)0が最悪の圧縮、100-最高です(デフォルトは75)。 -qualityを100に設定するか、オプションを削除してください。

もう1つの方法は、PNG:compression-level=NPNG:compression-strategy=NおよびPNG:compression-filter=Nを指定して、さらに良い結果を得る方法です。

http://www.imagemagick.org/script/command-line-options.php#quality

4
moropus

imagemagickを使用してサイズを変更した後、 pngquant を使用して画像を圧縮できます。

Mac(自作)でbrew install pngquant次に:

pngquant <filename.png>

これで新しい画像が作成されますfilename-fs8.pngそれは通常、サイズがはるかに小さいです。

2
spencer.sm