Любой способ дифференцироваться между ImageMagick и GraphicsMagick Com объектами?

StackOverflow https://stackoverflow.com/questions/4229233

  •  26-09-2019
  •  | 
  •  

Вопрос

У меня ImageMagick и GraphicsMagick оба установлены. Я могу использовать как свободно из командной строки, потому что у них есть разные пространства имен команд (все команды imageMagick являются параметрами для gm Команда GraphicsMagick). Из командной строки:

  • convert ... использует ImageMagick.
  • gm convert ... использует графический магикат

Что все работает нормально. Тем не менее, кажется, что объекты COM программ вызываются идентично:

  • Set img = CreateObject("ImageMagickObject.MagickImage.1") создает объект ImageMagick
  • Set img = CreateObject("ImageMagickObject.MagickImage.1") Создает объект графикимагика ... трудно поверить, но это прямо из графики SimpleTest.vbs Образец скрипта

Как указать, какой COM-объект я хочу использовать? Или мне удачи?

РЕДАКТИРОВАТЬ: Я просто сравнил образец сценариев VBS, которые включены в ImageMagick и GraphicsMagick, оба назвали SimpleTest.vbs. Оказывается, у них больше общего, чем имя файла. Они почти идентичные файлы. Это сам по себе может не значит (в конце концов, GM был развешен из IM), но я начинаю задаваться вопросом, имеет ли Gh GraphicMagick действительно COM-объект вообще или в том числе они включают COM-объект imageMagick в их Windows Binare.

Это было полезно?

Решение

Я задал этот вопрос в списке рассылки GraphicsMagick: Почему графический объект MAGICK COM под названием ImageMagick? Вот часть ответа Боб Фризенхана:

Я согласен, что это запутано. GraphicsMagick предлагает COM-объект. История интересна. Оригинальный ImageMagiChObject был разработан в рамках проекта GraphicsMagick тем же автором, что и оригинальный ImageMagiChObject. Текущий imageMagickObject был разработан в рамках проекта GraphicsMagick, и Bill RadCliffe сохранил исходное имя.

Я не знаю о способе указать использование определенного ImageMAGICKOCOBJECT COM, если оба зарегистрированы. Можно ли даже зарегистрировать два объекта COM под одним и тем же именем одновременно?

Насколько это возможно, в состоянии сказать, какой из них используется во время выполнения, кажется, что передача аргумента «-Version» может быть использован для возврата некоторой полезной информации.

Если я правильно понимаю COM, я считаю, что это в основном означает, что в зависимости от того, что библиотека была зарегистрирована недавно - ImageMagick или GraphicsMagick - это будет тот, который называется изнутри кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top