カレントディレクトリ以下にある画像ファイルのリサイズをRubyとImageMagickで。
テスト環境
- Mac OS X 10.8.5
- ruby 1.9.3p429
- ImageMagickインストール済み
面倒だったファイルのリサイズ
大量の画像ファイルを一括リサイズする事があったのですが、
RubyとImageMagickを使えば簡単にできるんじゃない?
と思い、ちょっとスクリプトを作ってみました。
変換ファイル、変更サイズなど固定値で持っていますが、
その部分さえ代えられれば(Dir.glob と scale の部分)、いろいろ使えそうですよ。
とりあえず写真を変換するのは楽になりました。
Rubyスクリプト
カレントディレクトリ以下にあるjpgファイルとpngファイルをすべて40%にリサイズし、元ファイルを上書きするので注意してください。
[ruby]
# encoding: UTF-8
require ‘rubygems’
require ‘rmagick’
def traverse( path )
Dir.glob([“#{path}/**/*.jpg”, “#{path}/**/*.JPG”, “#{path}/**/*.png”, “#{path}/**/*.PNG”]).each do |name|
unless File.directory?( name )
process_file( name )
end
end
end
def process_file( fname )
scale = 0.4 # 元サイズを1.0として、変換後の画像サイズをパーセントで指定
img = Magick::Image.read( fname ).first
img.resize!( scale )
img.write( “#{fname}” )
puts fname + ” 変換しました。”
end
traverse( Dir.pwd )
[/ruby]
参考にした書籍です。(いつの間にか第4版になってる・・・)
【送料無料】たのしいRuby第4版 [ 高橋征義 ] |