ImageMagickで無駄無くサムネイル画像を作成する

  • このエントリーをはてなブックマークに追加
  • Pocket
ImageMagick

運営中のサイトで配信しているサムネイル画像を生成する時に ImageMagick を使っている。

普通に ImageMagick を使って画像をリサイズする場合は

$ convert -resize 120x90 src.jpg dst.jpg

と書くと思うのだが、実は結構無駄があることがわかったのでメモ。

 

1. 爆速でリサイズする

実は今回のようにあらかじめ変換後のサイズが分かっている場合は [-define] オプションをつけるだけで爆速になるそう。

$ convert -define jpeg:size=120x90 -resize 120x90 src.jpg dst.jpg

JPEG ファイルを読み込む時のヒントとしてサイズを与えてやることで効率が良くなるとのこと。

 

2. 無駄な Exif 情報を削除

サムネイル画像のように、webサイトで配信するような画像では Exif 情報は無駄なので削除したい。

Exif 情報の削除には [-strip] オプションを使えばよい。

$ convert -define jpeg:size=120x90 -strip -resize 120x90 src.jpg dst.jpg

 

3. リサイズと Exif 情報の削除を一発で行う

調べてみると [-resize] と [-strip] を足し合わせたようなオプション [-thumbnail] が存在していることに気が付いた。

ぶっちゃけ上で書いた方法でも一発で変換できている気がするが、[-resize] と [-strip] を両方書くよりスマートなのでこっちを使うことにした。

$ convert -define jpeg:size=120x90 -thumbnail 120x90 src.jpg dst.jpg

これ内部的には何か差があるのだろうか。

 

おわりに

ちなみに複数のファイルに対して一括で処理を行うには mogrify を使うとよい。

$ mogrify -strip img_*.jpg

いやー、ImageMagick 便利ですな。

 

参考文献

[1] 本当は速いImageMagick: サムネイル画像生成を10倍速くする方法 – 昼メシ物語

[2] [Imagemagick] exif情報を削除するにはstripオプション – 綾小路龍之介の素人思考

[3] ImageMagick を使ってサムネイル画像を作成する方法

SNSでもご購読できます!

コメントを残す

*