Как заставить ImageMagick общаться с Ghostscript

Я на Windows XP.

Я использую ImageMagick (MagickNet) для преобразования PDF в TIF.

Моя проблема в том, что когда я загружаю PDF в объект MagicNet.Image, он не выдает ошибку, но когда я смотрю на свойства, становится очевидно, что он не загружал PDF (он не содержит никаких данных).

Я думаю, что ImageMagick не разговаривает с Ghostscript.

Есть идеи?

- Я забыл упомянуть, я установил Ghost Script и добавил папку bin в PATH.

3 ответа

Вы удостоверились, что установили Ghostscript? По умолчанию он не включен в пакеты ImageMagick.

Я думаю, если вы установите каталог GhostScript до того, как вы сделали преобразование. Код должен быть MagickNET.SetGhostscriptDirectory(@"your path here");

Возможно, вы уже сделали что-то подобное, но чтобы убедиться, что у вас есть проблема, изолированная для ImageMagick и GhostScript (в отличие от MagickNet, который является просто оберткой), вы можете увидеть, конвертирует ли командная строка ImageMagick convert.exe может конвертировать ваш PDF в TIFF? Я никогда не видел, чтобы convert.exe не выполнял то, что можно сделать с помощью методологии на основе API (я не использовал MagickNet, но я широко использовал утилиту convert.exe и использовал COM-библиотеку ImageMagickObject через взаимодействие). Для простого теста это должно быть так просто:

c:\PATH_TO_IMAGEMAGICK\convert YourInput.pdf YourOutput.tif

Если это работает, ваши установки ImageMagick и GhostScript в основном в порядке, и что-то нужно сделать в MagickNet или в вашем приложении; если это не работает, значит, что-то не так с вашей установкой / настройкой ImageMagick и / или GhostScript.

Если выясняется, что проблема связана с MagickNet, использование ImageMagickObject для конвертации через взаимодействие не так уж и плохо. Вы просто создаете один экземпляр, а затем вызываете "convert" для него, как если бы это был статический метод с параметрами, которые почти совпадают с параметрами для командной строки convert.exe:

ImageMagickObject.MagickImage img = new MagickImage();

object[] parms = new object[2];
parms[0] = "YourInput.pdf";
parms[1] = "YourOuput.tif";
img.Convert(ref parms);
Другие вопросы по тегам