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)

No comments: