Saturday, October 18, 2008

RMagickで画像の四隅を切り取る

RMagickで画像の四隅を切り取るには、以下のコードを実行します。

require 'RMagick'
include Magick

# 四隅切り取りサイズ
px = 20
py = 20
# 画像読み込み
images = ImageList.new("sf2.jpg")
# マスク作成
mask = Image.new(images[0].columns, images[0].rows){
self.background_color = "none"
}
idr = Draw.new
idr.polygon(px, 0, images[0].columns-1-px, 0,
images[0].columns-1, py, images[0].columns-1, images[0].rows-1-px,
images[0].columns-1-px, images[0].rows-1, px, images[0].rows-1,
0, images[0].rows-1-py, 0, py)
idr.draw(mask);

# マスクを利用して切り取り
img2 = mask.composite(images[0], 0, 0, SrcInCompositeOp)

# 背景用画像
bg = Image.new(images[0].columns, images[0].rows){
self.background_color = "white"
}
img3 = bg.composite(img2, CenterGravity, 0, 0, OverCompositeOp);
img3.write("sample655a.png")

exit

元画像(sf2.jpg)


出力画像(sample655a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
RMagickで画像を角丸四角に切り取る
ImageMagickで画像の四隅を切り取る (Convertコマンドでの同様の処理)

No comments: