Thursday, August 14, 2008

RMagickで画像の上下を半透明にする

RMagickで画像の上下を半透明にするには、以下のコードを実行します。

require 'RMagick'
include Magick

# 上下が半透明になった画像の生成
images = ImageList.new("sf.jpg")
images[0].alpha = ActivateAlphaChannel
mo = images.fx("abs(sin(pi*j/h))", Magick::AlphaChannel)
mo.write("sample532a.png")

# クリーム色の背景と重ね合わせ
img2 = Image.new(images[0].columns+20, images[0].rows+20){
self.background_color = "#ffffe0"
}
img3 = img2.composite(mo, CenterGravity, 0, 0, OverCompositeOp);
img3.write("sample532b.png")

exit

元画像(sf.jpg)


出力画像(sample532a.png)



出力画像(sample532b.png)


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

関連項目
ImageMagickで画像の上下を半透明グラデーションにする (Convertコマンドでの同様の処理)

No comments:

Post a Comment