RMagick を使って、Macのスクリーンショットを白黒化する

現在、Ruby on Rails教育用テキストを作っていますが、スクリーンショットを白黒化する必要があるので変換ソフトを作りました。

↓ こうなります



Mac OS X では Command + Shift + 4 を押すと、領域指定のスクリーンキャプチャーになります。ここでスペースキーを押すと、ウィンドウ単位のキャプチャーが出来ます。
しかし、上の画像のようにウィンドウの外に影が付きます。影は雰囲気があって良いのですがじゃまになることもあります。そこで、この影の部分を削除します。
ちなみに、影の大きさは 上25dot 右40dot 下55dot 左40dot です。

次に、1dotの枠を付け、白黒化し (jpegで)保存します。

#!/usr/bin/env ruby
require 'RMagick'
include Magick

if ARGV.size == 0 
  puts "usage:$0 source-file [destination-file]"
  exit
end
if ARGV.size == 1
  dest = ARGV[0].dup
  dest.sub!(/\.png$/, ".jpg")
else
  dest = ARGV[1]
end


img = ImageList.new(ARGV[0])

w = img.columns - (40 + 40)
h = img.rows - (25 + 55)
mono_img = img.crop(40, 25, w, h)
mono_img = mono_img.border(1, 1, "#BDBDBD")
mono_img = mono_img.quantize(256, Magick::GRAYColorspace)  
mono_img.write(dest) {self.quality = 80}