カレントディレクトリ以下にある画像ファイルのリサイズを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版 [ 高橋征義 ]

【送料無料】たのしいRuby第4版 [ 高橋征義 ]
価格:2,730円(税込、送料込)

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください