Ich versuche, die ImageMagickObject COM-Komponente zu verwenden, die mit dem Windows Installer für ImageMagick geliefert wird, das in meinem C# -Projekt als eine COM-Referenz importiert wird. Bisher war ich in der Lage, Bilder von einer Datei auf einer anderen Datei auf der Festplatte zu konvertieren. Ich versuche, es zu erhalten, um die Datei im Speicher zu konvertieren und es in einem Bytearray zurückzugeben, wie in der ArrayTest.vbs-Datei gezeigt wird, die mit der Bibliothek enthalten wird. Hat jemand das schon einmal erfolgreich gemacht? Dokumentation fehlt stark zu dieser Funktion ...ImageMagick in C#: Get Byte-Array von Convert Call?
Mein Code:
MagickImageClass _magic = new MagickImageClass();
object[] myarray = new object[1];
myarray[0] = "JPEG:";
object[] args = new object[] { tbFilename.Text, "-colorspace", "cmyk", "-resize", "50%", myarray };
var result = _magic.Convert(ref args);
Ihre Probe aus ArrayTest.vbs:
Dim img
Dim myarray(1)
Set img = CreateObject("ImageMagickObject.MagickImage.1")
myarray(0)="8BIM:"
msgs = img.Convert("null:","-profile","8BIMTEXT:iptctext.txt",myarray)
Wenn Sie nicht vertraut mit ImageMagick sind „null: "ist ein eingebauter Typ, der ein Nullbild angibt. "-profile" und "8BIM: iptctext.txt" sind Befehlszeilenparameter, die an den Convert-Aufruf übergeben werden, und mein Array ist im Wesentlichen die Ausgabe. In ihrem Beispiel endet Myarray mit einem Byte-Array des neu konvertierten Bildes. In meinem Code ist myarray unverändert. Hilfe!!
Die Ausgabe scheint die Ergebnisvariable zu sein, nicht myarray. Was ist der Inhalt des Ergebnisses? –