Bash Batch Resize Imagesファイルサイズの問題
-
05-07-2019 - |
質問
ディレクトリ内のすべての画像のサイズを変更するために使用する小さなスクリプトがあります。このスクリプトをcygwinで実行し、" convert"を使用します。画像のサイズ変更を行います。画像の解像度は問題なく変更されますが、スクリプトの実行後にファイルサイズに問題があります。
通常、このスクリプトを使用して、Powerpointプレゼンテーションからダンプされた画像のサイズを変更し、作成した小さなWebプレゼンテーションアプリで使用します。 gifをダンプしてスクリプトを実行すると、ファイルのサイズが2倍を超えます(例:8KBから18KB、14KBから50KB)
スクリプトの適切な行は次のとおりです。
/usr/bin/convert $holdfile -thumbnail x480 temp.GIF
mv temp.GIF $i
ファイルサイズが大きくなりすぎないようにするスイッチはありますか?ファイルのサイズがそれほど大きくないことは知っていますが、プレゼンテーションや避けられないダイアルアップユーザーに接続する人が多い場合は、できる限りユーザーのエクスペリエンスを向上させたいと考えています。
編集:ファイルが解像度960px x 720pxで始まり、640px x 480pxにサイズ変更されるように指定する必要がありました。
解決
まあ、これは変換が入力ファイルよりも悪い場合に起こります。まったく同じ圧縮スキームでは、圧縮コードの品質に応じて異なる結果が得られる可能性があるため、これが発生する可能性があります。
もう1つの可能性の高いオプションは、おそらくバイキュービックサイズ変更で行われる画像のサイズ変更です。これにより、テキストまたは図面の端が少しぼやけます。これは、より多くの色を使い、圧縮率が低下することを意味します。
また、元の画像は最適化されたカラーパレットを使用している可能性が高く、おそらくいくつかの色で、サイズ変更後のスムージングにより、単一のGIFフレームでサポートされるフル256色が必要になります。
いずれの場合でも、おそらくGIFの代わりにPNGを使用するとパフォーマンスが向上するはずです。 PNGはGIFの最新の代替品として設計されており、現在使用されている(グラフィカル)ブラウザにはPNG(アルファチャネルなし)の表示に問題はありません。 PNGはGIFよりも圧縮率が高く、同時により多くの色を使用できます。 PNG画像をさらに圧縮するoptipngなどのツールもあります。
他のヒント
Convertはパレットを自動的に最適化しますが、サイズ変更中に色がブレンドされるためにパレットが大きくなる場合があります。グラフィックプログラムでソースと結果の画像を検査し、色の数を確認できるはずです。
GIFはLZW圧縮のみをサポートしますが、特許の制限により(最後は2004年)期限が切れたため、LZW圧縮を手動で有効にする必要がありました。それでもそうなのかどうかはわかりませんが、調べる価値はあります。
LZW圧縮が指定されているが、 LZW圧縮は有効になっていませんが、 画像データは 可能な非圧縮LZW形式 LZWデコーダーによって読み取られます。これは結果になるかもしれません 予想よりも大きいGIFファイル。 - imagemagick.org