ImageMagick で JPG 画像ファイルを圧縮したいのですが、サイズに大きな違いが出ません。デフォルトでは、出力サイズは入力サイズよりも大きくなります。理由はわかりませんが、+profile オプションをいくつか追加して品質を下げた後、サイズは小さくなりますが、元のサイズとほぼ同じになります。
入力画像は 255kb、処理された画像は 264kb です (+profile を使用してプロファイルを削除し、品質を 70% に設定)。この画像を少なくとも 150kb に圧縮する方法はありますか? それは可能ですか? どのような ImageMagick オプションを使用できますか?
ベストアンサー1
私はいつも以下を使用します:
- 85の品質
- プログレッシブ(コンプローブ圧縮)
- サイズを最適化するための非常に小さなガウスぼかし (半径 0.05 または 0.5) は画像の品質とサイズによって異なり、これにより JPEG のサイズが著しく最適化されます。
- コメントやEXIFメタデータを削除する
でイメージマジックすべきである
convert -strip -interlace Plane -gaussian-blur 0.05 -quality 85% source.jpg result.jpg
または新しいバージョンでは:
magick source.jpg -strip -interlace Plane -gaussian-blur 0.05 -quality 85% result.jpg
ソース。
コメント欄の@Fordiより(気に入ったら忘れずに賛成票を投じてください): ぼかしが嫌いな場合は、-sampling-factor 4:2:0
代わりに を使用してください。これにより、目が捉える輝度解像度を損なわずに、彩度チャンネルの解像度が半分に削減されます。変換の忠実度を高めたい場合は、デフォルトの-define jpeg:dct-method=float
高速整数バージョンではなく、より正確な浮動小数点離散コサイン変換を指定することで、ファイルサイズを増やすことなく若干の改善を得ることができます。