Friday, September 07, 2007

ImageMagickで透明なスリットが徐々に広くなっていく加工をする

ImageMagickで透明なスリットが徐々に広くなっていく加工をするには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 200x200 xc:none sf.jpg -channel rgba -fx "j<h/3||(j-h/3)%%15>floor((j-h/3)/15)?v.p:#00000000" sample216a.png
上記では、画面の1/3の高さから徐々にスリットが広がるようになっています。

元画像(sf.jpg)


出力画像(sample216a.png)


2008/01/04追記
ver6.3.7では、以下のように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 200x200 xc:none sf.jpg -matte -channel rgba -fx "j<h/3||(j-h/3)%%15>floor((j-h/3)/15)?v.p:#00000000" sample216a.png


関連項目
ImageMagickで円状に透明スリットが広がるように加工する

ImageMagickで透明なスリットの入ったグラデーションの角丸四角を描画する

ImageMagickで透明なスリットの入ったグラデーションの角丸四角を描画するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
rem 1ピクセルごとに透過ライン
%im%\convert.exe -size 150x150 xc:none -fill gradient:#7090E0-#F8C749 -draw "roundrectangle 0,0 149,149 15,15" -channel rgba -fx "j%%2==0?p:#00000000" sample215a.png

出力画像(sample215a.png)


rem 重ねあわせ例
%im%\convert.exe sf.jpg sample215a.png -geometry +25+25 -composite sample215b.jpg

重ねあわせ例(sample215b.jpg)


rem 2ピクセルごとに2ピクセルの透過ライン
%im%\convert.exe -size 150x150 xc:none -fill gradient:#7090E0-#F8C749 -draw "roundrectangle 0,0 149,149 15,15" -channel rgba -fx "j%%4>1?p:#00000000" sample215c.png

出力画像(sample215c.png)

Thursday, September 06, 2007

ImageMagickで任意の大きさの十字柄の背景画像を作成する

ImageMagickで任意の大きさの十字柄の背景画像を作成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 100x100 xc:none -fx "gw=20; gh=20; lw=10; lh=10; spx=(gw-lw)/2; epx=lw+spx; spy=(gh-lh)/2; epy=lh+spy; ((i%%gw>=spx)&&amp;amp;(i%%gw<=epx)&&(j%%gh==floor(gh/2)))||((j%%gh>=spy)&&amp;amp;(j%%gh<=epy)&&(i%%gw==floor(gw/2)))?#2060D4:#FFFFF0" sample214a.jpg

出力画像(sample214a.jpg)

Wednesday, September 05, 2007

ImageMagickで指定の円の外側を徐々に引き伸ばす

ImageMagickで指定の円の外側を徐々に引き伸ばすには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample6.jpg -fx "cx=50; cy=50; rc=20; dx=cx-i; dy=cy-j; pr=atan2(dx,dy)+pi/2; dp=sqrt(dx^2+dy^2); dm=dp-sqrt(dp-rc); dp>rc?p{cx+cos(pr)*dm,cy-sin(pr)*dm}:p" sample213a.png

上記バッチでは、中心50,50で半径20の円の外側が引き伸ばされています。

元画像(sample6.jpg)


出力画像(sample213a.png)


下のバッチでは、中心100,150、半径60ピクセルの円の外側が引き伸ばされています。
%im%\convert.exe sf.jpg -fx "cx=100; cy=150; rc=60; dx=cx-i; dy=cy-j; pr=atan2(dx,dy)+pi/2; dp=sqrt(dx^2+dy^2); dm=dp-(dp-rc)/3; dp>rc?p{cx+cos(pr)*dm,cy-sin(pr)*dm}:p" sample213b.png

元画像(sf.jpg)


出力画像(sample213b.png)



Tuesday, September 04, 2007

ImageMagickで黄色っぽい部分以外が透明な透過PNGを作成する

ImageMagickで黄色っぽい部分以外が透明な透過PNGを作成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample6.jpg -channel a -fx "(hue>0.11&&amp;hue<0.19&&intensity<0.93&&saturation>0.5)?1:0" sample212a.png
%im%\convert.exe sample7.jpg -channel a -fx "(hue>0.11&&amp;hue<0.19&&intensity<0.93&&saturation>0.5)?1:0" sample212b.png

元画像1(sample6.jpg)


出力画像1(sample212a.png)


元画像2(sample7.jpg)


出力画像2(sample212b.png)


2008/01/04追記
ver6.3.7では、以下のように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sample6.jpg -matte -channel a -fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?1:0" sample212a.png
%im%\convert.exe sample7.jpg -matte -channel a -fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?1:0" sample212b.png

Monday, September 03, 2007

ImageMagickで任意の位置からゆらぎをかける

ImageMagickで任意の位置からゆらぎをかけるには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample3b.jpg -fx "j>h/3?p[cos(pi*(j-h/3)/10)*sqrt(j-h/3),0]:p" sample211a.jpg

上記のバッチでは、1/3の高さから揺らぎを徐々に強くかけています。

元画像(sample3b.jpg)


出力画像(sample211a.jpg)
ImageMagickでゆらぎをかけた画像

関連項目
ImageMagickで、画像を中心から上下へ徐々に大きく揺らす
RMagickで画像を揺らす (RMagickによる同様の処理)

Sunday, September 02, 2007

ImageMagickで任意の位置から右方向に画像を引き伸ばす

ImageMagickで任意の位置から右方向に画像を引き伸ばすには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample4.jpg -fx "i>w/2?p[-sqrt(i-w/2),0]:p" sample210a.jpg

元画像(sample4.jpg)


出力画像(sample210a.jpg):画面の右半分を引き伸ばした例


さらに引き伸ばす場合は、以下のコマンドを実行します。
%im%\convert.exe sample4.jpg -fx "i>w/2?p[-(i-w/2)/2,0]:p" sample210b.jpg

出力画像(sample210b.jpg)

ImageMagickで任意の大きさの水玉模様を描画する

ImageMagickで任意の大きさの水玉模様を描画するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 100x100 xc:none -fx "(i%%20-10)^2+(j%%20-10)^2<=8^2?#F4D6D4:#FFF0F0" sample209a.jpg

出力画像(sample209a.jpg)


関連項目
ImageMagickで、グラデーションのかかった水玉模様を描画する
ImageMagickで交互に円が配置された水玉模様を描画する

Friday, August 31, 2007

ImageMagickで任意の大きさの斜め四角模様を作成する

ageMagickで任意の大きさの斜め四角模様を作成するには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 100x100 xc:none -fx "((200+j-i)%%10==0)||((i+j)%%10==0)?#404080:#7090F0" sample208a.jpg

上記の例では10x10の大きさの四角を斜めに描画しています。

出力画像(sample208a.jpg)

Thursday, August 30, 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&&amp;hue<0.69&&luminosity>0.5)?1:0" -channel rgba ( sf.jpg -motion-blur 0x5+270 ) +swap -composite sample200a.jpg

元画像(sf.jpg)


出力画像(sample200a.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)?1:0" -channel rgba ( sf.jpg -motion-blur 0x5+270 ) +swap -composite sample200a.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.5)?1:0" -channel rgba ( sf.jpg -motion-blur 0x5+270 ) +swap -composite sample200a.jpg

ImageMagickで画像に任意の大きさのグリッドを描画する

ImageMagickで画像に任意の大きさのグリッドを描画するには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 200x200 sf.jpg -fx "i%%20==0||j%%20==0?0:p" sample207a.png

横方向の大きさはi%%<ピクセル数>の部分で指定し、
縦方向の大きさはj%%<ピクセル数>の部分で指定します。

元画像(sf.jpg)


出力画像(sample207a.png)

Wednesday, August 29, 2007

ImageMagickで二値化して大きめに選択した領域をぼかして切り取り

ImageMagickで二値化して大きめに選択した領域をぼかして切り取りするには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample5.jpg ( sample5.jpg -threshold 53000 -channel A -fx "p.r==1?0:1" -blur 0x2 -fx "p.a>0?1:0" -blur 0x2 ) -channel a -fx "v.p{i,j}.a" -channel rgba sample206a.png
%im%\convert.exe -size 100x100 xc:black sample206a.png -composite sample206b.jpg

上記バッチファイルでは、1回目の-blurで領域を増やして領域を増やして、
再度0と1に-fxで計算してから、2回目の-blurでぼかしています。

元画像(sample5.jpg)


出力画像(sample206a.png)


黒背景と重ねあわせ例(sample206b.jpg)


2008/01/04追記
ver6.3.7では、以下のバッチファイルのように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sample5.jpg ( sample5.jpg -threshold 53000 -matte -channel A -fx "p.r==1?0:1" -blur 0x2 -fx "p.a>0?1:0" -blur 0x2 ) -matte -channel a -fx "v.p{i,j}.a" -channel rgba sample206a.png
%im%\convert.exe -size 100x100 xc:black sample206a.png -composite sample206b.jpg

関連項目
ImageMagickで画像を2値化して大き目の領域で切り取り

Tuesday, August 28, 2007

ImageMagickで横線の入った文字を描画する

ImageMagickで横線の入った文字を描画するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 200x50 xc:white -fx "j%%3==0?#707070:#FFFFFF" +antialias -font Tahoma-Bold -gravity center -fill white -draw "font-size 28 text 0,0 'ImageMagick'" ( -size 200x50 xc:none +antialias -font Tahoma-Bold -gravity center -fill red -draw "font-size 28 text 0,0 'ImageMagick'" -channel a -fx "(p.r==1)?1:0" -channel rgb -fx "j%%3<2?#707070:#FFFFFF" -channel rgba ) -composite sample205a.png

上記バッチファイルでは、背景部分が3ピクセル毎に横線を引き、
文字の部分は3ピクセルのうち2ピクセルに横線を描画しています。

出力画像(sample205a.png)

Monday, August 27, 2007

ImageMagickで三角模様の背景画像を作成する

ImageMagickで三角模様の背景画像を作成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 100x100 xc:none -fx "((i%%10+j%%10)>=10)?#FFFFF0:#C0B49D" sample204s.jpg

出力画像(sample204s.jpg)


%im%\convert.exe -size 100x100 xc:none -fx "((j%%15-i%%15)>0)?#A0C0F0:#F0F0FF" sample204b.jpg

出力画像(sample204b.jpg)


関連項目
ImageMagickで三角の背景画像を生成する

Sunday, August 26, 2007

ImageMagickで画像と重なった文字以外の部分だけ白黒にする

ImageMagickで画像と重なった文字以外の部分だけ白黒にするには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 200x200 sf.jpg ( -size 200x200 xc:none +antialias -font Tahoma-Bold -gravity north -fill white -draw "font-size 28 text 0,50 'San Francisco'" ) -fx "v.p{i,j}.r!=1?(r+g+b)/4:p" sample203a.png

元画像(sf.jpg)


出力画像(sample203a.png)


逆に文字の部分だけを白黒にするには、以下を実行します。
%im%\convert.exe -size 200x200 sf.jpg ( -size 200x200 xc:none +antialias -font Tahoma-Bold -gravity north -fill white -draw "font-size 28 text 0,50 'San Francisco'" ) -fx "v.p{i,j}.r==1?(r+g+b)/4:p" sample203b.png

出力画像(sample203b.png)


関連項目
ImageMagickで、マスクした部分を白黒に変換する
ImageMagickで、青っぽい所以外を白黒にする

Saturday, August 25, 2007

ImageMagickで斜めドットのモザイクをかける

ImageMagickで斜めドットのモザイクをかけるには、
以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 150x150 xc:none -channel RGBA ( sample4.jpg -resize 10x10 -rotate 45 ) -fx "v.p{ceil((i+1)/10)-1,ceil((j+1)/10)-1}" -rotate -45 -gravity center -crop 90x90+0+0 sample202a.png
上記バッチでは45度回転後、モザイクをかけ、再び45度回転させて周囲を取り除くため
切り抜いています。

元画像(sample4.jpg)


出力画像(sample202a.png)


5x5ピクセルの斜めドットでモザイクをかけるには、以下のバッチを実行します。
飾りガラスで透かして見たような感じになります。
%im%\convert.exe -size 300x300 xc:none -channel RGBA ( sf.jpg -resize 40x40 -rotate 45 ) -fx "v.p{ceil((i+1)/5)-1,ceil((j+1)/5)-1}" -rotate -45 -gravity center -crop 180x180-10-10 sample202b.png

元画像(sf.jpg)


出力画像(sample202b.png)

Friday, August 24, 2007

ImageMagickで雨が降っているような加工をする

ImageMagickで雨が降っているような加工をするには、以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
rem スケッチ処理+白黒化
%im%\convert.exe sf.jpg -modulate 90,150 -sketch 0x30+60 -modulate 70,150 -fx "(r+g+b)/3" sample201a.jpg
rem 空の部分以外を若干青めにして、ぼかしをかけて湿気を表現
%im%\convert.exe sf.jpg -channel a -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.5)?0:0.4" -channel r -fx "0.7*0" -channel g -fx "0.7*p" -channel b -fx "0.8*p" -channel rgba -blur 0x2 sample201b.png
rem 重ね合わせ
%im%\convert.exe sf.jpg -modulate 100,60 -channel rgba sample201b.png -composite ( sample201a.jpg -channel a -fx "0.4" -channel rgba ) -composite sample201c.jpg

元画像(sf.jpg)


中間画像(sample201a.jpg):斜線が付いた昔の書籍の白黒写真風になります。


中間画像(sample201b.png):青空以外の部分を切り取って、青みを増させ、ぼかします。


出力画像(sample201c.jpg):元画像の彩度を落とした画像+上の2つの画像を
重ね合わせた画像です。


2008/01/04追記
ver6.3.7では、以下のバッチのように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem %im%\convert.exe sf.jpg -modulate 90,150 -sketch 0x30+60 -modulate 70,150 -fx "(r+g+b)/3" sample201a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?0:0.4" -channel r -fx "0.7*0" -channel g -fx "0.7*p" -channel b -fx "0.8*p" -channel rgba -blur 0x2 sample201b.png
%im%\convert.exe sf.jpg -modulate 100,60 -matte -channel rgba sample201b.png -composite ( sample201a.jpg -matte -channel a -fx "0.4" -channel rgba ) -composite sample201c.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 -modulate 90,150 -sketch 0x30+60 -modulate 70,150 -fx "(r+g+b)/3" sample201a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&lightness>0.5)?0:0.4" -channel r -fx "0.7*0" -channel g -fx "0.7*p" -channel b -fx "0.8*p" -channel rgba -blur 0x2 sample201b.png
%im%\convert.exe sf.jpg -modulate 100,60 -matte -channel rgba sample201b.png -composite ( sample201a.jpg -matte -channel a -fx "0.4" -channel rgba ) -composite sample201c.jpg


関連項目
ImageMagickで徐々に画像がスケッチ調になるように加工する

Thursday, August 23, 2007

ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする

ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくするには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe tree1.jpg -channel a -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.5)?0:1" -channel rgb -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.3)?0:p*2" tree1.jpg +swap -composite sample198a.jpg

上記のバッチでは、青色部分以外のところのピクセル値を2倍にしています。

元画像(tree1.jpg)


出力画像(sample198a.jpg)


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

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

関連項目
ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする - その2

Wednesday, August 22, 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&&amp;hue<0.69&&luminosity>0.5)?1:0" -channel rgba ( sf.jpg -sketch 0x10+60 ) +swap -composite sample197a.jpg

元画像(sf.jpg)


出力画像(sample197a.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)?1:0" -channel rgba ( sf.jpg -sketch 0x10+60 ) +swap -composite sample197a.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)?1:0" -channel rgba ( sf.jpg -sketch 0x10+60 ) +swap -composite sample197a.jpg


関連項目
ImageMagickで徐々に画像がスケッチ調になるように加工する

Tuesday, August 21, 2007

ImageMagickで任意の大きさのタイル模様を作成する

ImageMagickで任意の大きさのタイル模様を作成するには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 100x100 xc:none -fx "i%%10>1&&i%%10<9&&j%%10>1&&j%%10<9?#CABFAB:#FFFFFF" sample196a.jpg

出力画像(sample196a.jpg)


%im%\convert.exe -size 100x100 xc:none -fx "i%%20>1&&i%%20<19&&j%%10>1&&j%%10<9?#918164:#FFFFFF" sample196b.jpg
サイズを変更するには、横幅ならi、縦幅ならjの条件を変更します。

出力画像(sample196b.jpg)


関連項目
ImageMagickでレンガ模様の背景画像を生成する。
ImageMagickで任意の大きさのタイル模様を作成する - その2 (高速版)