Monday, August 20, 2007

ImageMagickで青色っぽい部分だけ他の画像と半透明に重ねあわせる

ImageMagickで青色っぽい部分だけ他の画像と半透明に重ねあわせるには、
以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sf.jpg -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?0.5:1" -channel rgba sample10c.jpg +swap -composite sample195a.jpg

元画像(sf.jpg)


重ねあわせ画像(sample10c.jpg)


半透明にして重ね合わせた結果(sample195a.jpg)


半透明グラデーションにする場合は、以下のコマンドを実行します。
%im%\convert.exe sf.jpg -channel a -fx "aval=j/h; (hue>0.47&&hue<0.69&&luminosity>0.5)?aval:1" -channel rgba sample10c.jpg +swap -composite sample195b.jpg

半透明グラデーションにして重ね合わせた結果(sample195b.jpg)


2008/01/04追記
ver6.3.7では、以下のバッチのように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?0.5:1" -channel rgba sample10c.jpg +swap -composite sample195a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "aval=j/h; (hue>0.47&&hue<0.69&&luminosity>0.5)?aval:1" -channel rgba sample10c.jpg +swap -composite sample195b.jpg

2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&lightness>0.4)?0.5:1" -channel rgba sample10c.jpg +swap -composite sample195a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "aval=j/h; (hue>0.47&&hue<0.69&&lightness>0.4)?aval:1" -channel rgba sample10c.jpg +swap -composite sample195b.jpg

No comments: