RMagickでマスクした部分を白黒にするには、以下のコードを実行します。
require 'RMagick'
include Magick
images = ImageList.new("sf.jpg")
images2 = ImageList.new("mask.bmp")
# 白黒マスクから透過反転マスクを作成
images2.alpha = ActivateAlphaChannel
img = images2.fx("1-r", Magick::AlphaChannel)
# マスク画像で切り取り
img3 = img.composite(images[0], 0, 0, SrcInCompositeOp)
# グレースケール画像に変換
images[0].colorspace = ColorspaceType::GRAYColorspace
# 切り取った画像とグレースケール画像を重ね合わせ
img4 = images[0].composite(img3, CenterGravity, 0, 0, OverCompositeOp)
img4.write("sample716a.png")
exit
元画像(sf.jpg)
マスク画像(mask.bmp)
出力画像(sample716a.png)
動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8
関連項目
ImageMagickで、マスクした部分を白黒に変換する (Convertコマンドで同様の処理)
No comments:
Post a Comment