ImageMagickとGraphicsMagick comオブジェクトを区別する方法はありますか?
-
26-09-2019 - |
質問
ImageMagickとGraphicsMagickの両方がインストールされています。コマンドラインは異なるコマンドネームスペースを持っているため、コマンドラインから両方を自由に使用できます(すべてのImageMagickコマンドは、 gm
GraphicsMagickコマンド)。コマンドラインから:
convert ...
ImageMagickを使用しますgm convert ...
GraphicsMagickを使用します
それはすべて正常に機能します。ただし、両方のプログラムのcomオブジェクトは同じように呼び出されているように見えます。
Set img = CreateObject("ImageMagickObject.MagickImage.1")
ImageMagickオブジェクトを作成しますSet img = CreateObject("ImageMagickObject.MagickImage.1")
GraphicsMagickオブジェクトを作成します...信じがたいですが、これはGraphicsMagickから直接ですSimpleTest.vbs
サンプルスクリプト
どのcomオブジェクトを使用したいかを指定するにはどうすればよいですか?それとも私は運が悪いですか?
編集: ImageMagickとGraphicsMagickに含まれているサンプルVBSスクリプトを、どちらもSimpletest.vbsという名前を比較しました。ファイル名よりも共通点があることがわかりました。それらはほぼ同一のファイルです。これ自体はそれほど意味がないかもしれません(結局、GMはIMからフォークされました)が、GraphicsMagickが実際にCOMオブジェクトを持っているのか、それともWindowsバイナリにImageMagickのcomオブジェクトを含めているのではないかと思い始めています。
解決
GraphicsMagickメーリングリストでこの質問をしました。 GraphicsMagick comオブジェクトがImageMagickと呼ばれるのはなぜですか? これがボブ・フリーゼンハーンの応答の一部です:
私はそれが混乱していることに同意します。 GraphicsMagickはCOMオブジェクトを提供します。歴史は興味深いです。元のImageMagickObjectは、GraphicsMagickプロジェクトの下で、元のImageMagickObjectと同じ著者によって開発されました。現在のImageMagickObjectはGraphicsMagickプロジェクトの下で開発され、Bill Radcliffeは元の名前を保持しました。
両方が登録されている場合、特定のimagemagickobject comの実装を使用して指定する方法を知りません。同じ名前の下に2つのcomオブジェクトを一度に登録することさえ可能ですか?
実行時に使用されているものを知ることができる限り、「-version」という引数を渡すことは、いくつかの有用な情報を返すために使用される可能性があるようです。
COMを正しく理解している場合、これは基本的に、最近のライブラリが登録されたライブラリであるImagemagickまたはGraphicsMagickがコード内から呼び出されたものを意味することを意味すると思います。