Wednesday, January 21, 2009

RMagickで画像の上に半透明グラデーションの斜線を描画する

RMagickで画像の上に半透明グラデーションの斜線を描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

# 画像に半透明グラデーションの斜線を描画する

images = ImageList.new("sf.jpg")
images2 = ImageList.new
images2 << Image.new(images[0].columns, images[0].rows){
self.background_color = "white"
}
images2[0].alpha = ActivateAlphaChannel
images2[0] = images2.fx("(i+j)%4==0?#BBDDFF:0")
images2[0] = images2.fx("(i+j)%4==0?p*(h-j)/h:0", AlphaChannel)

img3 = images[0].composite(images2[0], CenterGravity, 0, 0,
OverCompositeOp);

img3.write("sample755a.png")

exit


fxメソッドのi,jはx,y座標、hは画像の高さを示します。

元画像(sf.jpg)


出力画像(sample755a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで、画像を中心から上下へ徐々に大きく揺らす

No comments: