左側が丸く右側が徐々に半透明になっていく図形を描画するには、以下のバッチファイルを
実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
rem 角丸四角画像を描画して右角丸部分を切り落とし、回転させたグラデーション画像と連結します。
%im%\convert.exe -size 100x20 xc:none -fill #BBDDFFFF -draw "roundrectangle 0,0,99,19,10,10" -gravity east -chop 10x0 ( -size 20x60 gradient:#BBDDFFFF-#BBDDFF00 -rotate -90 ) +append sample343a.png
rem 重ね合わせ例
%im%\convert.exe sample8.jpg sample343a.png -geometry +10+10 -composite sample343b.png
出力画像(sample343a.png)
重ね合わせ例(sample343b.png)
関連項目
ImageMagickで画像の上下左右を切り落とす(-chopオプションについて)
Saturday, March 22, 2008
Friday, March 21, 2008
ImageMagickで、任意の大きさの画像を角丸四角に切り取る
任意の大きさの画像を角丸四角に切り取るには、以下のVBSをWSHから実行します。
sample342.vbs
------------------------------------------------------------------------------------
Set im = CreateObject("ImageMagickObject.MagickImage.1")
rem 角丸x
rx = Wscript.Arguments(0)
rem 角丸y
ry = Wscript.Arguments(1)
rem 入力ファイル名
ifile = Wscript.Arguments(2)
rem 出力ファイル名
ofile = Wscript.Arguments(3)
rem 入力ファイルの幅・高さを取得する
width = im.identify("-format", "%w", ifile)
height = im.identify("-format", "%h", ifile)
rem 角丸四角で画像を切り取る
im.Convert ifile, "-matte", "(", "-size", width & "x" & height, "xc:none", "-fill", "white", "-draw", "roundrectangle 0,0," & (width-1) & "," & (height-1) & "," & rx & "," & ry , ")", "-compose", "dst_in", "-composite", ofile
Set im = Nothing
------------------------------------------------------------------------------------
元画像(sf.jpg)
実行例:
cscript sample342.vbs 20 10 sf.jpg sample342a.png
引数として、角丸x=20,角丸y=10,入力ファイル=sf.jpg,出力ファイルsample342a.pngを与えています。
出力画像(sample342a.png)
元画像(sf2.jpg)
実行例:
cscript sample342.vbs 30 30 sf2.jpg sample342b.png
出力画像(sample342b.png)
sample342.vbs
------------------------------------------------------------------------------------
Set im = CreateObject("ImageMagickObject.MagickImage.1")
rem 角丸x
rx = Wscript.Arguments(0)
rem 角丸y
ry = Wscript.Arguments(1)
rem 入力ファイル名
ifile = Wscript.Arguments(2)
rem 出力ファイル名
ofile = Wscript.Arguments(3)
rem 入力ファイルの幅・高さを取得する
width = im.identify("-format", "%w", ifile)
height = im.identify("-format", "%h", ifile)
rem 角丸四角で画像を切り取る
im.Convert ifile, "-matte", "(", "-size", width & "x" & height, "xc:none", "-fill", "white", "-draw", "roundrectangle 0,0," & (width-1) & "," & (height-1) & "," & rx & "," & ry , ")", "-compose", "dst_in", "-composite", ofile
Set im = Nothing
------------------------------------------------------------------------------------
元画像(sf.jpg)
実行例:
cscript sample342.vbs 20 10 sf.jpg sample342a.png
引数として、角丸x=20,角丸y=10,入力ファイル=sf.jpg,出力ファイルsample342a.pngを与えています。
出力画像(sample342a.png)
元画像(sf2.jpg)
実行例:
cscript sample342.vbs 30 30 sf2.jpg sample342b.png
出力画像(sample342b.png)
Thursday, March 20, 2008
ImageMagickで、光沢のついた半透明角丸四角を描画する
光沢のついた半透明角丸四角を描画するには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 100x100 xc:none -fill #FFFFFF80 -draw "ellipse 40,-60,90,90,0,360" ( -size 100x100 xc:none -fill white -draw "roundrectangle 0,0 99,99 10,10" ) -compose dst_in -composite ( -size 100x100 xc:none -fill #00000040 -draw "roundrectangle 0,0 99,99 10,10" ) +swap -compose src-over -composite sample341a.png
rem 重ね合わせ例
%im%\convert.exe sf.jpg sample341a.png -geometry +90+40 -composite sample341b.png
上記バッチファイルでは半透明の円を描画して、角丸四角でマスクして、半透明の角丸四角と重ね合わせています。
出力画像(sample341a.png)
重ね合わせ例(sample341a.png)
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe -size 100x100 xc:none -fill #FFFFFF80 -draw "ellipse 40,-60,90,90,0,360" ( -size 100x100 xc:none -fill white -draw "roundrectangle 0,0 99,99 10,10" ) -compose dst_in -composite ( -size 100x100 xc:none -fill #00000040 -draw "roundrectangle 0,0 99,99 10,10" ) +swap -compose src-over -composite sample341a.png
rem 重ね合わせ例
%im%\convert.exe sf.jpg sample341a.png -geometry +90+40 -composite sample341b.png
上記バッチファイルでは半透明の円を描画して、角丸四角でマスクして、半透明の角丸四角と重ね合わせています。
出力画像(sample341a.png)
重ね合わせ例(sample341a.png)
Wednesday, March 19, 2008
ImageMagickで、アニメーションGIFの各フレームに文字列を描画する
アニメーションGIFの各フレームに文字列を描画するには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sample62.gif -font "c:/winnt/fonts/msmincho.ttc" -gravity center -draw @sample337.txt -swap 8,9 -draw @sample337.txt -swap 8,9 -swap 7,9 -draw @sample337.txt -swap 7,9 -swap 6,9 -draw @sample337.txt -swap 6,9 -swap 5,9 -draw @sample337.txt -swap 5,9 -swap 4,9 -draw @sample337.txt -swap 4,9 -swap 3,9 -draw @sample337.txt -swap 3,9 -swap 2,9 -draw @sample337.txt -swap 2,9 -swap 1,9 -draw @sample337.txt -swap 1,9 -swap 0,9 -draw @sample337.txt -swap 0,9 sample338.gif
また、日本語文字列の描画のために以下のファイルをUTF-8で保存します。
sample337.txt
------------------------------------------------------------------------------
font-size 32 text 0,0 '見本'
------------------------------------------------------------------------------
元画像(sample62.gif)
出力画像(sample338.gif)
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sample62.gif -font "c:/winnt/fonts/msmincho.ttc" -gravity center -draw @sample337.txt -swap 8,9 -draw @sample337.txt -swap 8,9 -swap 7,9 -draw @sample337.txt -swap 7,9 -swap 6,9 -draw @sample337.txt -swap 6,9 -swap 5,9 -draw @sample337.txt -swap 5,9 -swap 4,9 -draw @sample337.txt -swap 4,9 -swap 3,9 -draw @sample337.txt -swap 3,9 -swap 2,9 -draw @sample337.txt -swap 2,9 -swap 1,9 -draw @sample337.txt -swap 1,9 -swap 0,9 -draw @sample337.txt -swap 0,9 sample338.gif
また、日本語文字列の描画のために以下のファイルをUTF-8で保存します。
sample337.txt
------------------------------------------------------------------------------
font-size 32 text 0,0 '見本'
------------------------------------------------------------------------------
元画像(sample62.gif)
出力画像(sample338.gif)
Tuesday, March 18, 2008
ImageMagickで、アニメーションGIFを逆順序に変換する
アニメーションGIFを逆順序に変換するには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sample62.gif -swap 0,9 -swap 1,8 -swap 2,7 -swap 3,6 -swap 4,5 -loop 0 sample314.gif
元画像(sample62.gif)
出力画像(sample314.gif)
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.8-Q16
%im%\convert.exe sample62.gif -swap 0,9 -swap 1,8 -swap 2,7 -swap 3,6 -swap 4,5 -loop 0 sample314.gif
元画像(sample62.gif)
出力画像(sample314.gif)
ImageMagickとWSHで、不規則な形のバッジを作成する
不規則な形のバッジを作成するには、以下のVBScriptをWSHで実行します。
sample340.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 半径変動幅
dr = Wscript.Arguments(8)
rem 出力ファイル名
ofile = Wscript.Arguments(9)
dr1=0
dr2=360/(par*2)
dat="polygon "
Do While dr2<360 p1x="int(cx-cos(2*pi*dr1/360)*rad1)" p1y="int(cy-sin(2*pi*dr1/360)*rad1)" drr="dr*rnd()" p2x="int(cx-cos(2*pi*dr2/360)*(rad2+drr))" p2y="int(cy-sin(2*pi*dr2/360)*(rad2+drr))">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, "-draw", dat, ofile
Set im = Nothing
-------------------------------------------------------------
実行例:
cscript sample340.vbs 36 100 100 90 80 orange 200 200 8 sample340.png
出力画像(sample340.png)
sample340.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 半径変動幅
dr = Wscript.Arguments(8)
rem 出力ファイル名
ofile = Wscript.Arguments(9)
dr1=0
dr2=360/(par*2)
dat="polygon "
Do While dr2<360 p1x="int(cx-cos(2*pi*dr1/360)*rad1)" p1y="int(cy-sin(2*pi*dr1/360)*rad1)" drr="dr*rnd()" p2x="int(cx-cos(2*pi*dr2/360)*(rad2+drr))" p2y="int(cy-sin(2*pi*dr2/360)*(rad2+drr))">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, "-draw", dat, ofile
Set im = Nothing
-------------------------------------------------------------
実行例:
cscript sample340.vbs 36 100 100 90 80 orange 200 200 8 sample340.png
出力画像(sample340.png)