Я пытаюсь использовать COM-компонент ImageMagickObject, поставляемый с установщиком Windows для ImageMagick, импортированный в мой проект C # в качестве ссылки на COM. До сих пор я был в состоянии использовать его для преобразования изображений из одного файла на диске в другой файл на диске. Я пытаюсь заставить его преобразовать файл в память и вернуть его в байтовом массиве, как показано в файле ArrayTest.vbs, входящем в комплект библиотеки. Кто-нибудь успешно делал это раньше? Для этой функции не хватает документации ...
Мой код:
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);
Их образец из 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)
Если вы не знакомы с ImageMagick, «null:» - это встроенный тип, указывающий нулевое изображение. «-profile» и «8BIM: iptctext.txt» - это параметры командной строки, передаваемые вызову Convert, и мой массив - это, по сути, вывод. В их примере myarray заканчивается байтовым массивом недавно преобразованного изображения. В моем коде myarray не изменился. Помогите !!