代码之家  ›  专栏  ›  技术社区  ›  mwolfe02

有没有办法区分ImageMagick和GraphicsMagick COM对象?

  •  1
  • mwolfe02  · 技术社区  · 14 年前

    我已经安装了ImageMagick和GraphicsMagick。我可以在命令行中自由使用这两个命令,因为它们有不同的命令名称空间(所有ImageMagick命令都是 gm GraphicsMagick命令)。从命令行:

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

    一切正常。但是,似乎两个程序的COM对象都以相同的方式调用:

    • Set img = CreateObject("ImageMagickObject.MagickImage.1") 创建ImageMagick对象
    • 设置img=CreateObject(“ImageMagickObject.MagickImage.1”) 创建GraphicsMagick对象。。。很难相信,但这是直接从图形 SimpleTest.vbs 示例脚本

    如何指定要使用的COM对象?还是我运气不好?

    编辑: 我刚刚比较了ImageMagick和GraphicsMagick中包含的示例VBS脚本,这两个脚本都名为SimpleTest.VBS。结果发现它们比文件名有更多的共同点。它们几乎是相同的文件。这本身可能并不意味着什么(毕竟,GM是从I m派生出来的),但我开始怀疑GraphicsMagick是否真的有一个COM对象,或者他们是否只是将ImageMagick的COM对象包含在他们的Windows二进制文件中。

    1 回复  |  直到 14 年前
        1
  •  1
  •   mwolfe02    14 年前

    我在GraphicsMagick邮件列表中问了这个问题: Why is the GraphicsMagick COM object called ImageMagick? 以下是Bob Friesenhan的部分回应:

    我同意这是令人困惑的。 GraphicsMagick确实提供了一个COM 反对。历史很有趣。 最初的ImageMagickObject是 在图形技术指导下开发 由与 原始ImageMagickObject。这个 当前ImageMagickObject为 在图形技术指导下开发 保留项目和比尔·拉德克利夫 原名。

    我不知道该怎么说 使用特定的ImageMagickObject COM实现,如果两者都是 注册的。有没有可能 在下面注册两个COM对象 一次同名?

    只要能分辨出哪一个 在运行时使用,似乎 传递参数'-version'可能 用来返回一些有用的信息。

    如果我正确理解COM,我相信这基本上意味着最近注册的库ImageMagick或GraphicsMagick将是从代码中调用的库。