1

ImageMagick と GraphicsMagick の両方がインストールされています。どちらもコマンドの名前空間が異なるため、コマンド ラインから自由に使用できます (すべての ImageMagick コマンドはgmGraphicsMagick コマンドのパラメーターです)。コマンドラインから:

  • convert ...ImageMagick を使用
  • gm convert ...GraphicsMagick を使用

それはすべてうまくいきます。ただし、両方のプログラムの COM オブジェクトが同じように呼び出されるようです。

  • Set img = CreateObject("ImageMagickObject.MagickImage.1")ImageMagick オブジェクトを作成します
  • Set img = CreateObject("ImageMagickObject.MagickImage.1")SimpleTest.vbsGraphicsMagick オブジェクトを作成します... 信じがたいですが、これは GraphicsMagickサンプル スクリプトからそのままです

使用する COM オブジェクトを指定するにはどうすればよいですか? それとも私は運が悪いのでしょうか?

編集: ImageMagick と GraphicsMagick に含まれているサンプル VBS スクリプトを比較しました。どちらも SimpleTest.vbs という名前です。ファイル名よりも多くの共通点があることがわかりました。それらはほぼ同一のファイルです。これ自体はあまり意味がないかもしれませんが (結局のところ、GM は IM からフォークされました)、GraphicsMagick が実際に COM オブジェクトを持っているのか、それとも ImageMagick の COM オブジェクトを Windows バイナリに含めているだけなのか疑問に思い始めています。

4

1 に答える 1

1

GraphicsMagick メーリング リストで次の質問をしました 。GraphicsMagick COM オブジェクトが ImageMagick と呼ばれるのはなぜですか? Bob Friesenhahn の応答の一部を次に示します。

紛らわしいことに同意します。GraphicsMagick は COM オブジェクトを提供します。歴史は面白いです。元の ImageMagickObject は、元の ImageMagickObject と同じ作成者によって GraphicsMagick プロジェクトの下で開発されました。現在の ImageMagickObject は GraphicsMagick プロジェクトの下で開発され、Bill Radcliffe は元の名前を保持しています。

両方が登録されている場合、特定の ImageMagickObject COM 実装を使用して指定する方法を認識していません。一度に 2 つの COM オブジェクトを同じ名前で登録することはできますか?

実行時にどちらが使用されているかを知ることができる限り、引数「-version」を渡すと、いくつかの有用な情報が返されるようです。

COM を正しく理解していれば、これは基本的に、最近登録されたライブラリ (ImageMagick または GraphicsMagick) がコード内から呼び出されることを意味すると思います。

于 2010-11-22T14:38:22.247 に答える