Saturday, March 03, 2007

ImageMagickとVB Scriptを使用して複数画像を処理する

ImageMagickとVB Script(WSH)を使用して複数画像を処理することもできます。

以下のスクリプト(cv.vbs)では、指定されたディレクトリ内のすべての画像に
ロゴ画像を右下に重ね合わせます。
使用方法はコマンドプロンプトから以下のコマンドを実行します。
cscript cv.vbs <入力ディレクトリへのフルパス> <出力ディレクトリへのフルパス>


cv.vbs
--------------------------------------------------------------------------
WScript.StdOut.WriteLine "source directory:" + WScript.Arguments(0)
WScript.StdOut.WriteLine "output directory:" + WScript.Arguments(1)

im = "C:\Progra~1\ImageMagick-6.3.2-Q16\convert.exe"
opts = "yourlogo.png -gravity southeast -composite"

Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(WScript.Arguments(0))
for each objFile In objFolder.Files
WScript.StdOut.WriteLine "found:" & objFile
cs = im &amp;amp; " " & objFile.path & " " & opts & " " & WScript.Arguments(1) & "\" & objFile.name
WScript.StdOut.WriteLine "processing an image..."
Set objExec = objShell.Exec(cs)
Do While objExec.Status = 0
WScript.Sleep 100
Loop
WScript.StdOut.WriteLine "result:" & objExec.ExitCode
next
--------------------------------------------------------------------------
オプション用の変数(opts)を変更することで、他の画像処理を一度に実行することができます。

サンプル入力画像


重ねあわせ画像(yourlogo.png)


サンプル出力画像


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

No comments: