Question

J'ai ImageMagick et GraphicsMagick tous deux installés. Je peux utiliser les deux librement à partir de la ligne de commande car ils ont des espaces de noms de commandes différents (toutes les commandes ImageMagick sont des paramètres de la gm Commande GraphicsMagick). De la ligne de commande:

  • convert ... Utilise ImageMagick
  • gm convert ... utilise graphicsmagick

Tout fonctionne bien. Cependant, il semble que les objets COM des deux programmes soient invoqués de manière identique:

  • Set img = CreateObject("ImageMagickObject.MagickImage.1") Crée un objet ImageMagick
  • Set img = CreateObject("ImageMagickObject.MagickImage.1") Crée un objet GraphicsMagick ... difficile à croire, mais c'est directement à partir du graphicsmagick SimpleTest.vbs exemple de script

Comment spécifier l'objet COM que je souhaite utiliser? Ou suis-je sans chance?

ÉDITER: Je viens de comparer les échantillons de scripts VBS qui sont inclus avec ImageMagick et GraphicsMagick, tous deux nommés Simplest.vbs. Il s'avère qu'ils ont plus en commun que le nom de fichier. Ce sont des fichiers presque identiques. Cela en soi ne signifie peut-être pas grand-chose (après tout, GM a été fourchu à partir de la messagerie instantanée), mais je commence à me demander si GraphicsMagick a vraiment un objet COM ou s'ils incluent simplement l'objet com d'imageMagick dans leur binaire Windows.

Était-ce utile?

La solution

J'ai posé cette question sur la liste de diffusion GraphicsMagick: Pourquoi l'objet GraphicsMagick COM appelle-t-il ImageMagick? Voici une partie de la réponse de Bob Friesenhahn:

Je suis d'accord que c'est déroutant. GraphicsMagick propose un objet COM. L'histoire est intéressante. L'ImageMagickObject d'origine a été développé sous le projet GraphicsMagick par le même auteur que le ImageMagickObject d'origine. L'ImageMagickObject actuel a été développé sous le projet GraphicsMagick et Bill Radcliffe a conservé le nom d'origine.

Je ne suis pas au courant d'un moyen de spécifier une implémentation ImageMagickObject COM particulière si les deux sont enregistrés. Est-il même possible d'enregistrer deux objets COM sous le même nom à la fois?

En ce qui concerne la possibilité de dire laquelle est utilisée au moment de l'exécution, il semble que le passage de l'argument «-version» pourrait être utilisé pour renvoyer des informations utiles.

Si je comprends bien COM, je crois que cela signifie essentiellement que la bibliothèque a été enregistrée plus récemment - ImageMagick ou GraphicsMagick - sera celle appelée à partir du code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top