画像を結合するVBScriptが動作しない

こんにちは。いつも勉強させて頂いております。

下記のようなVBScriptのファイルを作成し、手動実行(VBSファイルダブルクリック)で
正常に動作することを確認したのですが、
そのファイルをUiPathから呼び出して実行するとこれが動作してくれません。

Option Explicit

Dim img
Dim msgs

Set img = CreateObject("ImageMagickObject.MagickImage.1")
msgs = img.Convert("+append","D:\test\Input1.png","D:\test\Input2.png","D:\test\Output.png")
Set img=Nothing

複数画像ファイルを横に繋げたものを作りたいと思っており、
ImageMagickというツールをインストールして、VBSから起動している形になっています。

1行ごとにEchoを入れてみたところ、「Set img = CreateObject~」の行で止まっていることは
確認できました。
直接の原因は、ここでCreateしているObjectがImageMagick固有のものであるためなのだと
思うのですが、
VBSファイルを直接実行した時とUiPathからVBSファイルを起動した時とで
挙動とか、何か参照しているものに違う部分が出てきてしまうものなのでしょうか?

ご教示頂ければ幸いです。

※ちなみにUiPathからの起動は、
・VBScriptを呼び出しのアクティビティで起動
・プロセスを開始アクティビティでC:\Windows\System32\wscript.exeを起動
・メソッドを呼び出しアクティビティでProcess型変数に対してStartを呼び出し
の3パターンで試しましたが、どれも同じ結果でした。

1 Like

(なお、もっと楽な画像連結手段(カスタムアクティビティとか)をご存知の方がいらっしゃいいましたら
ひっそりご教示頂けるとより幸いです・・)

結局VBSは動かなかったものの、別アプローチで画像の結合を行ったので
メモを兼ねて自己レス。

パッケージとしてMagick.NET(自分の環境ではQ16-AnyCPU)をインストールし、
各画像ファイルをMagickImage型オブジェクトとしてNew。(代入)
MagickImageCollection型オブジェクトにAddして、(メソッドを呼び出し)
AppendHorizontallyメソッドを起動して、(メソッドを呼び出し)
生成されたIMagickImage型オブジェクトをWriteして(メソッドを呼び出し)
出力完了。

のちのち画像を結合したい人が現れたときの一助になれば。
(と、ここまで書いて実はVB.netの標準機能で画像が結合できたりするんだろうかとふと思う)

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.