Tuesday, January 20, 2009

RMagickで画像を透過PNGのエッジ抽出画像に変換する

RMagickで画像を透過PNGのエッジ抽出画像に変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像を透過PNGのエッジ抽出画像に変換する
images = ImageList.new("sf2.jpg")
images[0].colorspace = GRAYColorspace
images[0].alpha = ActivateAlphaChannel
img2 = images[0].enhance().enhance()
images[0] = img2.edge(1);
images[0] = images.fx("r", AlphaChannel)
images[0] = images.fx("#5588DD")
images[0].write("sample754a.png")

images2 = ImageList.new("sf2.jpg")
images2[0].colorspace = GRAYColorspace

img3 = images2[0].composite(images[0], NorthWestGravity, 0, 0, OverCompositeOp);
img3.write("sample754b.png")

exit

元画像(sf2.jpg)


出力画像1(sample754a.png):エッジ抽出画像を透過PNGにして、エッジ抽出に色付けした画像


出力画像2(sample754b.png):グレースケールにした元画像とエッジ抽出画像の重ね合わせ


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
Rmagickで画像を木炭画調に変換してグラデーションを適用する
ImageMagickで透過PNGのエッジ抽出画像を生成する (convertコマンドでの同様の処理)

No comments: