Domanda

Ho ImageMagick e Graphicsmagick entrambi installati. Posso usare entrambi liberamente dalla riga di comando perché hanno diversi spazi dei nomi dei comandi (tutti i comandi ImageMagick sono parametri per gm Comando graphicsmagick). Dalla riga di comando:

  • convert ... Usa ImageMagick
  • gm convert ... Utilizza Graphicsmagick

Tutto funziona bene. Tuttavia, sembra che gli oggetti COM di entrambi i programmi siano invocati in modo identico:

  • Set img = CreateObject("ImageMagickObject.MagickImage.1") Crea un oggetto ImageMagick
  • Set img = CreateObject("ImageMagickObject.MagickImage.1") Crea un oggetto Graphicsmagick ... difficile da credere, ma questo è direttamente da Graphicsmagick SimpleTest.vbs script di esempio

Come posso specificare quale oggetto com voglio usare? O sono sfortunato?

MODIFICARE: Ho appena confrontato gli script VBS di esempio inclusi con ImageMagick e Graphicsmagick, entrambi chiamati SimpleTest.vbs. Si scopre che hanno più in comune del nome file. Sono file quasi identici. Questo di per sé potrebbe non significare molto (dopo tutto, GM è stato biforcato da IM), ma sto iniziando a chiedermi se GraphicsMagick abbia davvero un oggetto COM o se stanno solo includendo l'oggetto COM di ImageMagick nella loro binaria di Windows.

È stato utile?

Soluzione

Ho fatto questa domanda sulla mailing list graphicsmagick: Perché l'oggetto COM Graphicsmagick si chiama ImageMagick? Ecco parte della risposta di Bob Friesenhahn:

Sono d'accordo che è confuso. Graphicsmagick offre un oggetto COM. La storia è interessante. L'originale ImageMagickObject è stato sviluppato sotto il progetto Graphicsmagick dallo stesso autore dell'originale ImageMagickObject. L'attuale ImageMagickObject è stato sviluppato nell'ambito del progetto Graphicsmagick e Bill Radcliffe ha mantenuto il nome originale.

Non sono a conoscenza di un modo per specificare l'utilizzo di una particolare implementazione COM ImageMagickObject se entrambi sono registrati. È anche possibile registrare due oggetti COM con lo stesso nome in una volta?

Per quanto riguarda la capacità di dire quale è in uso in fase di esecuzione, sembra che passare l'argomento "versioni" potrebbe essere usato per restituire alcune informazioni utili.

Se capisco correttamente Com, credo che ciò significhi sostanzialmente che qualunque biblioteca sia stata registrata più recentemente-ImageMagick o Graphicsmagick-sarà quella chiamata dall'interno del codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top