Sunday, June 15, 2008

RMagickで、端が半透明の円形に画像を切り取る

RMagickで、端が半透明の円形に画像を切り取るには、以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf2.jpg")
img2 = Image.new(img1.columns, img1.rows){
self.background_color = "none"
}
dr = Draw.new
# 描画色
dr.fill = "white"
# 円を描画
dr.ellipse(130,110,100,100,0,360)
dr.draw(img2);
# ぼかし
img3 = img2.blur_channel(0, 10, AllChannels);
# 切り取り
img4 = img3.composite(img1, 0, 0, SrcInCompositeOp);
img4.write("sample464a.png")

# リサイズして他の画像と重ね合わせ
img5 = img4.resize(0.5)
img6 = ImageList.new("sf.jpg")
img7 = img6.composite(img5, NorthWestGravity, 10, 10, OverCompositeOp);
img7.write("sample464b.png")

exit

元画像1(sf.jpg)


元画像2(sf2.jpg)


出力画像(sample464a.png)


重ね合わせ例(sample464b.png)


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

関連項目
RMagickをWindowsで使用するための設定
ImageMagickで、端が半透明の円形に画像を切り取る (Convertコマンドでの同様の処理)

No comments: