Я хочу преобразовать некоторые изображения из 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. Но я получаю ту же ошибку. Есть ли другое место, где я должен установить путь? Или любое другое объяснение ошибки, которую я получаю?
Обновлен ответ 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 на всех машинах.