Tuesday, October 13, 2009

ImageMagick

Yahoo Auctionに投稿するときに
撮った写真の画像サイズを小さくする必要があり
そのために今までImageWellというツールを使ってたんだけど
これがSharewareになってしまった

でRubyで作ることにした
RubyにはRMagickという画像処理ライブラリがあって
それはImageMagickというCのライブラリのインタフェースを提供する
ImageMagickとRMagickのインストールはこの辺を参考に

Installing RMagick on OS X using MacPorts
http://rmagick.rubyforge.org/install-osx.html

使い方はこの辺を

RMagickの使い方のメモ | 山本隆の開発日誌
http://www.gesource.jp/weblog/?p=198

取り急ぎ簡単なサイズ変換ツールを作った
とりあえず縮小サイズは30%固定…
引数に画像ファイルを与えると
同じフォルダに_newという接尾を付けて保存する

#!/usr/bin/env ruby
# encoding: utf-8
require "RMagick"

PERCENT = 0.3
files = ARGV

num = files.each do |file|
    path = File.join(File.dirname(file), File.basename(file, ".*")+"_new"+File.extname(file))
    img = Magick::ImageList.new(file)
    puts "Original image: #{img.entries}"
    puts "processing on shrinkage to #{PERCENT*100}%..."
    width, height = img.columns.to_f*PERCENT, img.rows.to_f*PERCENT
    img = img.resize(width.to_i, height.to_i).write(path)
    puts "Done! New image: #{img.inspect}"
end.length

puts "All Done! #{num} images processed."

プログラムは簡単だけど
さちのmacにruby環境を作るのに時間が掛かる

No comments: