Saturday, March 08, 2008

ImageMagickで、写真を虹色の濃淡画像に変換する

写真を虹色の濃淡画像に変換するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf.jpg -fx "luminosity" ( -size 1x1 xc:blue xc:green xc:yellow xc:red -append -matte -channel a -fx "0.5" -channel rgba -resize 200x200! ) -composite sample331.png

元画像(sf.jpg)


出力画像(sample331.png)


2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf.jpg -fx "lightness" ( -size 1x1 xc:blue xc:green xc:yellow xc:red -append -matte -channel a -fx "0.5" -channel rgba -resize 200x200! ) -composite sample331.png

Thursday, March 06, 2008

ImageMagickで、マスクした部分を白黒に変換する

マスクした部分を白黒に変換するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf.jpg -matte -channel rgba ( mask.bmp -matte -channel a -fx "p.r" -channel rgba ) -compose dst_in -composite -fx "luminosity" sf.jpg +swap -compose src-over -composite sample330.png

元画像(sf.jpg)


マスク画像(mask.bmp)


出力画像(sample330.png)


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 rgba ( mask.bmp -matte -channel a -fx "p.r" -channel rgba ) -compose dst_in -composite -fx "lightness" sf.jpg +swap -compose src-over -composite sample330.png

関連項目
ImageMagickで、青っぽい所以外を白黒にする
JMagickでマスクした部分を白黒にする (JMagickでの同様の処理)
RMagickでマスクした部分を白黒にする (RMagickでの同様の処理)

Wednesday, March 05, 2008

ImageMagickで、画像の上に水滴を描画する

画像の上に水滴を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16

rem 内側の影を生成
%im%\convert.exe -size 40x40 xc:#808080 -matte -channel rgba ( -size 40x40 xc:none -fill white +antialias -draw "ellipse 20,20,14,14,0,360" -negate -background #00000000 -transparent #000000ff ) ( +clone -shadow 80x4+1+1 ) +swap -mosaic -crop 40x40+0+0 +repage ( -size 40x40 xc:none -draw "ellipse 20,20,14,14,0,360" ) -compose dst_in -composite -matte -channel a -fx "p.r!=0?0.6:0" sample329a.png

rem 半透明グラデーションを傾けて、内側の合成、ハイライトの点を描画
%im%\convert.exe -size 30x30 xc:none -matte -channel rgba -fill gradient:#00000810-#FFFFFF80 -draw "ellipse 15,15,14,14,0,360" -virtual-pixel background -background none -rotate -30 -gravity center -crop 30x30+0+0 +repage sample329a.png -compose overlay -composite -normalize ( -size 30x30 xc:none -fill #FFFFFF -draw "ellipse 10,10,2,2,0,360" -blur 0x1 ) -composite sample329b.png

rem 水滴の外側の影を追加
%im%\convert.exe -size 40x40 xc:white -matte -channel rgba -fill black -draw "ellipse 20,20,14,14,0,360" -blur 0x2 -channel a -fx "p.r" -channel rgba -negate sample329b.png -gravity center -geometry -1-1 -composite sample329c.png

rem 画像と合成
%im%\convert.exe sf.jpg sample329c.png -compose overlay -geometry +100+50 -composite sample329c.png -geometry +50+120 -composite sample329d.png

中間画像1(sample329a.png)内側の影を作成。


中間画像2(sample329b.png)半透明グラデーションを傾けて、内側の合成、ハイライトの点を描画。


中間画像3(Sample329c.png)水滴の外側の影を追加。


出力画像(sample329d.png)

Tuesday, March 04, 2008

ImageMagickで、2値化で切り取った画像に半透明の輪を描画する

2値化で切り取った画像に半透明の輪を描画するには以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 100x100 xc:none -matte -channel rgba -fill none -stroke #bbddff80 -strokewidth 5 -draw "ellipse 50,50,45,45,0,360" -virtual-pixel transparent -distort Perspective "0,0 25,25 0,100 -20,75 100,100 120,75 100,0 75,25" ( +clone -fx "j>=h/2?p:0" -write sample328b.png ) +delete -fx "j<h/2?p:0" sample328a.png
%im%\convert.exe sample5r.jpg -threshold 53000 -negate -matte -channel rgba -fill #00000000 -transparent #000000ff sample5r.jpg -compose src_in -composite sample328a.png +swap -compose src_over -composite sample328b.png -composite sample328c.png

元画像(sample5r.jpg)


中間画像(sample328b.png)


中間画像(sample328a.png)


出力画像(sample328c.png)

Monday, March 03, 2008

ImageMagickで、画像の端を白黒にする

画像の端を白黒にするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 200x200 xc:none -draw "rectangle 10,10 189,189" sf.jpg -compose src_in -composite ( sf.jpg -fx "luminosity" ) +swap -compose src-over -composite sample327a.png

元画像(sf.jpg)


出力画像(sample327a.png)


2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe -size 200x200 xc:none -draw "rectangle 10,10 189,189" sf.jpg -compose src_in -composite ( sf.jpg -fx "lightness" ) +swap -compose src-over -composite sample327a.png

Saturday, March 01, 2008

ImageMagickで、2値化した画像を透明に設定したり、色を変える

2値化した画像の黒色部分を透明にするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
rem 2値化した画像の黒色部分を透明に設定
%im%\convert.exe tree1.jpg -threshold 50%% -matte -channel rgba -fill #00000000 -transparent #000000ff sample324a.png
rem 重ね合わせ例
%im%\convert.exe -size 300x225 pattern:checkerboard sample324a.png -composite sample324b.png

元画像(tree1.jpg)


重ね合わせ例(324b.png)


画像を2値化して白色部分を透明にするには、以下のバッチファイルを実行します。
%im%\convert.exe tree1.jpg -threshold 50%% -matte -channel rgba -fill #ffffff00 -transparent #ffffffff sample324c.png
rem 重ね合わせ例
%im%\convert.exe -size 300x225 pattern:checkerboard sample324c.png -composite sample324d.png

出力画像(sample324c.png):白色部分が透過色です。


重ね合わせ例(sample324d.png)


2値化後、黒色部分を水色に、白色部分を透明にするには、以下のバッチファイルを実行します。
%im%\convert.exe tree1.jpg -threshold 50%% -matte -channel rgba -fill #ffffff00 -transparent #ffffffff -fill #bbddffff -opaque #000000ff sample324e.png
rem 重ね合わせ例
%im%\convert.exe -size 300x225 pattern:checkerboard sample324e.png -composite sample324f.png

出力画像(sample324e.png):白色部分が透明になります。


重ね合わせ例(sample324f.png)


関連項目
JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする

ImageMagickで、2値化した画像の背景をバンド状のグラデーションにする

2値化した画像の背景をバンド状のグラデーションにするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe tree1.jpg -threshold 50%% -matte -channel rgba -fill #00000000 -transparent #000000ff ( -size 1x1 xc:#3070A0FF xc:#FFFF10FF -append -resize 1x8! -filter Point -resize 300x225! ) -compose src_in -composite sample326a.png

元画像(tree1.jpg)


出力画像(sample326a.png)


関連項目
ImageMagickで2値化したのちグラデーションで塗りつぶす

Thursday, February 28, 2008

ImageMagickで、角がへこんだ四角を描画する

角がへこんだ四角を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 200x150 xc:#00000000 -matte -channel rgba -fill #FFFFFFFF -draw "rectangle 0,0 20,20" -roll -10-10 -negate -gravity center -background none -extent 220x170 -fx "p.r==1?#BBDDFF:0" sample322a.png

出力画像(sample322a.png)


へこんだ角を丸くするには、ぼかしをかけて2値化します。
%im%\convert.exe -size 200x150 xc:#00000000 -matte -channel rgba -fill #FFFFFFFF -draw "rectangle 0,0 20,20" -roll -10-10 -negate -gravity center -background none -extent 220x170 -blur 0x2 -threshold 50%% -fx "p.r==1?#BBDDFF:0" sample322b.png

出力画像(sample322.png)


角がへこんだ形に画像を切り取るには、以下のバッチファイルを実行します。
%im%\convert.exe -size 280x205 xc:#00000000 -matte -channel rgba -fill #FFFFFFFF -draw "rectangle 0,0 40,40" -roll -20-20 -negate -gravity center -background none -extent 300x225 -blur 0x4 -threshold 50%% sf2.jpg -compose src_in -composite xc:white +swap -composite sample322c.jpg

出力画像(sample322c.jpg)




Wednesday, February 27, 2008

ImageMagickでコントラストを落とす

ImageMagickで+contrastでコントラストを落とすこともできますが、
以下のバッチの方法で、コントラストを落とすこともできます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf2.jpg -fx "p*0.6+0.2" sample321a.png
rem 彩度を落として、青っぽく着色
%im%\convert.exe sf2.jpg -fx "luminosity*0.2+0.4" -fill #bbddff -tint 120 sample321b.png

元画像(sf.jpg)


出力画像(sample321a.png)


出力画像(sample321b.png)


2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf2.jpg -fx "p*0.6+0.2" sample321a.png
%im%\convert.exe sf2.jpg -fx "lightness*0.2+0.4" -fill #bbddff -tint 120 sample321b.png

関連項目
ImageMagickでコントラストを変更する

Tuesday, February 26, 2008

ImageMagickで、画像のヒストグラムを生成する

画像のヒストグラムを生成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf2.jpg histogram:sample320.png

元画像(sf2.jpg)


出力画像(sample320.png)


関連項目
im4javaで画像のヒストグラムを出力する (im4javaでの同様の処理)

Monday, February 25, 2008

ImageMagickで、縁を明るくして角丸四角に切り取る

縁を明るくして角丸四角に切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf2.jpg -matte -channel rgba ( -size 300x225 xc:none -strokewidth 0 -stroke white -fill white -draw "roundrectangle 10,10 289,214 30,30" ) -compose dst_in -composite ( sf2.jpg -modulate 150 ) +swap -compose src-over -composite -matte ( -size 300x225 xc:none -strokewidth 10 -draw "roundrectangle 10,10 289,214 30,30" ) -compose dst_in -composite sample319a.png
rem 重ねあわせ例
%im%\convert.exe -size 300x225 xc:#353030 sample319a.png -composite sample319b.jpg

元画像(sf2.jpg)


出力画像(sample319a.png):黒色部分は透過します。


重ね合わせ例(sample319b.jpg)


関連項目
ImageMagickで画像を角丸四角に切り取って文字入れをする
ImageMagickとPHPで縁を明るくして角丸四角に切り取る

Sunday, February 24, 2008

ImageMagickで、青っぽい部分を任意の2色のグラデーションに置き換える

青っぽい部分を任意の2色のグラデーションに置き換えるには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgb -fx "luminosity" ( -size 1x1 xc:#bbddff xc:#f8ff32 -append ) -fx "v.p{0,(p-0.5)*2}" -size 200x200 sf.jpg +swap -composite sample318a.jpg

元画像(sf.jpg)


出力画像(sample318a.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.45)?1:0" -channel rgb -fx "lightness" ( -size 1x1 xc:#bbddff xc:#f8ff32 -append ) -fx "v.p{0,(p-0.5)*2}" -size 200x200 sf.jpg +swap -composite sample318a.jpg

関連項目
ImageMagickで、青っぽい所以外を白黒にする
ImageMagickで画像を任意の2色グラデーションの画像に変換する
ImageMagickで青色部分・青色以外の部分をぼかす

Friday, February 22, 2008

ImageMagickで手で切り取ったように不規則に画像を切り取る

手で切り取ったように不規則に画像を切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 200x200 xc:none -fill white -draw "rectangle 10,10 189,189" -spread 5 -median 3 sf.jpg -compose src_in -composite sample317a.png
rem 重ねあわせ例
%im%\convert.exe -size 200x200 xc:#ffffe0 sample317a.png -composite sample317b.jpg

元画像(sf.jpg)


出力画像(sample317a.png):黒色部分は透過します。


重ね合わせ例(sample317b.jpg)


関連項目
ImageMagickで、手塗り風の四角を描画する
ImageMagickで、画像の端をかすれたように処理する
ImageMagickで、画像を端がちぎられたようなスケッチ調の画像に変換する
ImageMagickとPHPで手でちぎったように画像を切り取る (Imagickでの同様の処理)
RMagickで画像を手でちぎったように切り取る

ImageMagickで、手塗り風の四角を描画する

手塗り風の四角を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 200x200 xc:white -fill #BBDDFF -draw "rectangle 20,20 179,179" -spread 5 -median 3 sample316a.png

出力画像(sample316a.png)

関連項目
ImageMagickで手で切り取ったように不規則に画像を切り取る
ImageMagickとPHPで手塗り風の四角を描画する
RMagickで手塗り風の四角を描画する

Thursday, February 21, 2008

ImageMagickで、青っぽい所以外を白黒にする

青っぽい所以外を白黒にするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-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 -fx "luminosity" ) +swap -composite sample315a.jpg

元画像(sf.jpg)


出力画像(sample315a.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.45)?1:0" -channel rgba ( sf.jpg -fx "lightness" ) +swap -composite sample315a.jpg

関連項目
ImageMagickで任意の範囲の色相の色を残す
ImageMagickで、青っぽい部分を任意の2色のグラデーションに置き換える
ImageMagickで、マスクした部分を白黒に変換する

Wednesday, February 20, 2008

ImageMagickで、画像に半透明の濃淡をつけて重ね合わせる

画像に半透明の濃淡をつけて重ね合わせるには、以下のバッチファイルを
実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
rem 画像に半透明の濃淡をつける
%im%\convert.exe -seed 65535 -size 200x200 plasma:fractal -fx "luminosity" -matte -channel a -fx "r" -channel rgba sf.jpg -compose src_in -composite sample314a.png
rem 市松模様と重ね合わせ
%im%\convert.exe -size 200x200 pattern:checkerboard sample314a.png -composite sample314b.png

元画像(sf.jpg)


出力画像(sample314a.png)


重ね合わせ例(sample314b.png)


2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe -seed 65535 -size 200x200 plasma:fractal -fx "lightness" -matte -channel a -fx "r" -channel rgba sf.jpg -compose src_in -composite sample314a.png
%im%\convert.exe -size 200x200 pattern:checkerboard sample314a.png -composite sample314b.png

関連項目
ImageMagickで、任意の2色グラデーションのプラズマ・フラクタル画像を生成する
ImageMagickで、乱数のシード値を設定する
im4javaで画像に半透明の濃淡をつける (im4javaによる同様の処理)

Tuesday, February 19, 2008

ImageMagickで、乱数のシード値を設定する

-seedオプションで乱数のシード値を設定できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -seed 65535 -size 200x200 plasma:fractal sample313a.png

出力画像(sample313a.png)


関連項目
ImageMagickで、画像に半透明の濃淡をつけて重ね合わせる

Monday, February 18, 2008

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

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

によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 10x10 xc:white -fx "i>1&&i<9&&j>1&&j<9?#CABFAB:#FFFFFF" -write mpr:t1 +delete -size 300x200 tile:mpr:t1 sample311a.png

出力画像(sample311a.png)


%im%\convert.exe -size 20x10 xc:white -fx "i>1&&i<19&&j>1&&j<9?#918164:#FFFFFF" -write mpr:t1 +delete -size 300x200 tile:mpr:t1 sample311b.png

出力画像(sample311b.png)


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

Saturday, February 16, 2008

ImageMagickとWSHで、角が丸くなったバッジ画像を生成する

角が丸くなったバッジ画像を生成するには、以下のVBScriptを実行します。

(sample311.vbs)
=============================================================
Set im = CreateObject("ImageMagickObject.MagickImage.1")
pi=3.14159

rem 分割数
par = Wscript.Arguments(0)
rem 中心x
cx = Wscript.Arguments(1)
rem 中心y
cy = Wscript.Arguments(2)
rem 半径(大)
rad1 = Wscript.Arguments(3)
rem 半径(小)
rad2 = Wscript.Arguments(4)
rem 描画色
fc = Wscript.Arguments(5)
rem 出力サイズx
ox = Wscript.Arguments(6)
rem 出力サイズy
oy = Wscript.Arguments(7)
rem 出力ファイル名
ofile = Wscript.Arguments(8)

dr1=0
dr2=360/(par*2)
dat="stroke-linejoin round polygon "
Do While dr2<360 p1x="int(cx-cos(2*pi*dr1/360)*rad1)" p1y="int(cy-sin(2*pi*dr1/360)*rad1)" p2x="int(cx-cos(2*pi*dr2/360)*rad2)" p2y="int(cy-sin(2*pi*dr2/360)*rad2)">0 then
dat=dat+","
end if

dat=dat & cstr(p1x) & "," & cstr(p1y) & "," & cstr(p2x) & "," & cstr(p2y)

dr1 = dr1 + 360/par
dr2 = dr2 + 360/par
Loop

im.Convert "-size", ox & "x" & oy, "xc:none", "-fill", fc, "-stroke", fc, "-strokewidth", "4", "-draw", dat, ofile

Set im = Nothing
=============================================================

実行例
cscript sample311.vbs 36 100 100 90 80 #BBDDFF 200 200 sample311.png

出力画像(sample311.png)


stroke-linejoin roundにより、polygonで書かれたバッジの角が丸くなっています。

関連項目
ImageMagickとWSHで、バッジ画像を生成する