web-dev-qa-db-ja.com

Image Magick:ウェブサイトの画像最適化

私は3008x2000ピクセルの写真を生成するカメラを持っています。 Image Magickを使用して、自分のWebサイトに掲載する写真の拡大縮小とサイズ変更を行っています。私がウェブサイトで使用している画像のサイズは602x400です。このコマンドを使用してサイズを縮小します。

convert DSC_0124.JPG -scale 20% -size 24% img1.jpg

これにより、サイズが602x400ピクセルの画像が生成されます。ただし、ファイルサイズは常に250KBを超えます。 1つのHTMLページに画像が多いほど、ページが重くなり、読み込み時間が長くなります。ファイルサイズを可能な限り小さく、おそらく100KB未満に保つのに役立つ画像マジックの機能はありますか?ただし、画像サイズは同じ、つまり602x400pxである必要があります。私はMSWindows用の SEAMonster ツールで同様の最適化を達成しました。コマンドラインの代替手段がないため、変換する画像が数百ある場合はあまり役に立ちません。

15
nixnotwin

Delanが提案したコマンドを使用して、追加の「-strip」フラグを追加してEXIFデータを削除します。これにより、一部の画像のサイズが大幅に縮小されました。これはUNIXプラットフォーム用のbashスクリプトですが、2番目の部分は個々のイメージにのみ使用できます。

for X in *.jpg; do convert "$X" -resize 602x400 -strip -quality 86 "$X"; done

これにより、ディレクトリ内のすべての画像が変換されます。

30
Ross

使用する -quality圧縮レベルを設定するには:

convert DSC_0124.JPG -scale 20% -size 24% -quality [0..100] img1.jpg
8
Delan Azabani

出力画像の最大サイズは、次のように100KBで定義できます。

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg
3
Mark Setchell

PHPでWebサイトを実行している場合は、SLIR画像サイズ変更スクリプトを検討することをお勧めします。これは、さまざまな制約(以下を参照)に合わせてサイズ変更を行い、結果をキャッシュします。

Parameters:
w    Maximum width
h    Maximum height
c    Crop ratio
q    Quality
b    Background fill color
p    Progressive

http://shiftingpixel.com/2008/03/03/smart-image-resizer/

http://code.google.com/p/smart-lencioni-image-resizer/

2
Matt Montag