Вызов ImageMagick конвертировать из Java с исполняемой исполняющей

1

Я хочу преобразовать некоторые изображения из tif в tif, чтобы изменить фотометрическую интерпретацию.

Я нашел инструмент ImageMagick и установил его, в командной строке работает следующая команда и делает то, что я хочу:

 convert my_image.TIF dest.TIF

Теперь я хочу запустить его автоматически из программы Java. Я работаю над Windows, с Eclipse и ImageMagick 6.8.8. -Q16.

Я попытался с JMagick, но я только работал с предыдущей версией ImageMagick, и у меня были проблемы с преобразованием tif (каждый раз, когда я получал черное изображение, также в командной строке). Новейшая версия ImageMagick не была найдена новейшей версией JMagick для Windows.

Поэтому я попытался использовать Java Process Builder или команду exec Runtime, например:

 Process proc = Runtime.getRuntime().exec(new String[]{"convert","my_image.TIF","dest.TIF"});

а также

 ProcessBuilder pb = new ProcessBuilder("convert", "0011D7FE.TIF", "dest.tif");   
 pb.redirectErrorStream(true);   
 try {   
   Process p = pb.start();   
   BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));   
   String line = null;   
   while((line=br.readLine())!=null){   
       System.out.println(line);   
   }   
   System.out.println(p.waitFor());   
  } catch(Exception e) { } 

Независимо от того, какую команду я точно вставляю, я всегда получаю сообщение об ошибке "Invalid Param - dest.tif" для второго параметра.

Я нашел эту статью http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=19679, где проблема аналогична, и программа пытается использовать некоторые функции преобразования окон. Поэтому я добавил папку ImageMagick к своим системным переменным, а также добавил новую переменную, которая содержит эту папку для моего пути построения проекта в eclipse. Но я получаю ту же ошибку. Есть ли другое место, где я должен установить путь? Или любое другое объяснение ошибки, которую я получаю?

Теги:
imagemagick
imagemagick-convert
runtime.exec

1 ответ

3
Лучший ответ

Обновлен ответ 28-MAR-2017

Поскольку v7 из ImageMagick, команда convert была заменена magick чтобы избежать этой самой проблемы. Так...

  • convert input.tif output.tif становится magick input.tif output.tif
  • identify image.jpg становится magick identify image.jpg
  • compare image.jpg... становится magick compare image.jpg...
  • compose image.jpg... становится magick compose image.jpg...
  • mogrify image.jpg... становится magick mogrify image.jpg...

Оригинальный ответ

Вы можете переименовать встроенную программу convert Windows в качестве convertntfs или переименовать ImageMagick convert как IMconvert. Вероятно, это лучше, чем надеяться, что вы всегда не забудьте правильно установить PATH на всех машинах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню