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)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxCfHvCEOLEUaog0MC9HAiXWTgvjx31Ok3SzC4lRhN90ee375Znyb2Nk2p-4Ug-AqwJsDCAbTQR6podnFV1WkF2XGzCwQ6kZPSJkqrIX8fzwukCxKlpUh18E1pVV-WkAU5BCgY/s280/sf2.jpg)
出力画像1(sample754a.png):エッジ抽出画像を透過PNGにして、エッジ抽出に色付けした画像
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicNnNBztPUDV1Gm9SdP5sIAJ21n6X2lcRtpw2NI8pk_N1ML_QYMXyKna2-Kdutx9JIw4CxCvKpih21XPG-Dn0BQUj5M14A_OM-HUrlYduGAT2shdYTgWTlK4Q_Z9zggd7KLnUl/s280/sample754a.png)
出力画像2(sample754b.png):グレースケールにした元画像とエッジ抽出画像の重ね合わせ
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKLA-W-eW-6-IjyzlVFj7R0Zvo9y126AN1IyD72edAy6nQ9uUiAiLWf_KDNCDi0XaNh9gWKlDlHmKMr6vEEJ9ZludsiuamyMWIYuTz1PyaPhIgingKMOvMnoJRcqQMufXoXBzD/s280/sample754b.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
Rmagickで画像を木炭画調に変換してグラデーションを適用する
ImageMagickで透過PNGのエッジ抽出画像を生成する (convertコマンドでの同様の処理)
No comments:
Post a Comment