RMagickで枠線を付ける

RMagickを使って画像に枠線を付ける方法。


require 'rubygems'
require 'RMagick'

input  = "/path/to/input" # 元画像
output = "/path/to/output" # 書き出し先
thick = 10 # 枠線の太さ
color = "black"

image = Magick::ImageList.new(input)

# 上下左右にそれぞれborder_widthだけ追加して枠線を描画
image.
  border(thick, thick, border_color).
  write(output)

# 枠線の分だけ元画像を縮小して描画
width = image.first.columns
height = image.first.rows
image.
  resize(width - thick, height - thick).
  border(thick, thick, border_color).
  write(output)

Magick::ImageとMagick::ImageListの違いはまだよくわかってない。