Wednesday, July 09, 2008

RMagickで任意の2色の上下グラデーションの角丸四角を描画する

RMagickで任意の2色の上下グラデーションの角丸四角を描画するには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像サイズ
sx = 150
sy = 150
# 角丸サイズ
rx = 20
ry = 20
img = ImageList.new
img.new_image(sx, sy){
self.background_color = "none"
}
img[0].alpha = ActivateAlphaChannel
dr = Draw.new
# フィル色
dr.fill = "white"
# 角丸四角を描画
dr.roundrectangle(0, 0, sx-1, sy-1, rx, ry)
dr.draw(img[0])

img.new_image(2, 1, GradientFill.new(0, 0, 0, 10, "#FFFA6C", "#FF8B6C"))
img[1].alpha = ActivateAlphaChannel

mo = img.fx("u.p.r>0?v.p{(1-sin(pi*j/h)),1}:0", Magick::AllChannels)

mo.write("sample493a.png")

exit

出力画像(sample493a.png)


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

関連項目
ImageMagickで任意の2色の上下グラデーションの角丸四角を描画する (Convertコマンドで同様の処理)

No comments: