Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

RMagick

6/19にも書いたのですが、仕事で、Highslide JSを使おうと思っています。具体的には、

をベースにしたいと思っています。
そうなると、大きな画像から小さな画像ファイルを作る必要があります。この小さな画像のことをサムネイルというのでしょうか?
今回は、結構たくさんの画像を扱う必要がありますので、あまり手作業でやりたくありません。仕事で使うので、Windows環境で何かよい方法はないかと探していたところ、RMagickを使うとRubyで画像処理ができるようです。この方法だと、LinuxMacOSXでも同じような手順で使えるようです。やっぱり、いろんなOS環境で同じようにできる方法で取り組む方がいいですよね。
ということで、まず、設定です。
以下を参考にしました。

次に、縮小画像を作成する方法ですが、以下のような簡単なスクリプトを書きました。
横長だったら、横のサイズを72ピクセルに、縦長だったら、縦のサイズを54ピクセルに縮小するようにしました。

create_thumb.rb

require 'rubygems'
require 'RMagick'
include Magick

ARGV.each do |img_file|
  img = ImageList.new(File.expand_path(img_file))
  resized_img = nil
  if img.columns >= img.rows       # 横長
    resized_img = img.resize(72, 72 * img.rows / img.columns)
  else
    resized_img = img.resize(img.columns * 54 / img.rows, 54)
  end
  resized_img.write("thmb" + img_file)
end

実行

以下のように実行すると、

ruby create_thumb.rb *.jpg

大きな画像ファイル名の前に、"thmb"とついた縮小画像ファイルが出来上がります。
Ruby, ImageMagick, RMagickのおかげで仕事をスムーズに進めることができそうです。