私のアプリケーションでは、PNGファイルのサイズを変更して品質を低下させる必要があります。
フルサイズのPNGは3100x4400pxで、2,20MBのディスク容量を使用します。
次のコマンドを実行すると:
convert -resize 1400 -quality 10 input.png output.png
画像は5,33MBのディスク容量を使用して1400x2000にサイズ変更されます。
だから私の質問は:ファイルサイズをどのように減らすことができますか?
ポスタリゼーションを使用すると、PNGの品質をさらに下げることができます。
https://github.com/pornel/mediancut-posterizer ( Mac GUI )
これは、zlibがより適切に圧縮できるようにする非可逆操作です。
pngquant を使用して画像をPNG8に変換します。
画像は256色に減るので、品質は画像の種類によって異なりますが、pngquantは非常に優れたパレットを作成するので、どれほど頻繁に機能するかに驚くかもしれません。
Zopfli-png または AdvPNG を使用して、画像をより適切に再圧縮します。
これはロスレスであり、CPUサイクルに余裕がある場合は、すべてのイメージに推奨されます。
ヘルプページによると、PNGで使用される-quality
オプションはzlibの圧縮レベルを設定します。(おおよそ)0が最悪の圧縮、100-最高です(デフォルトは75)。 -quality
を100に設定するか、オプションを削除してください。
もう1つの方法は、PNG:compression-level=N
、PNG:compression-strategy=N
およびPNG:compression-filter=N
を指定して、さらに良い結果を得る方法です。
http://www.imagemagick.org/script/command-line-options.php#quality
imagemagick
を使用してサイズを変更した後、 pngquant
を使用して画像を圧縮できます。
Mac(自作)でbrew install pngquant
次に:
pngquant <filename.png>
これで新しい画像が作成されますfilename-fs8.png
それは通常、サイズがはるかに小さいです。