2014-10-02 6 views
0

Я хочу предоставить своим клиентам возможность изменять размер и делать водяные знаки изображений в приложении, разработанном с Java. После поиска в Интернете я предоставил библиотеку im4java своим приложением, просто добавив его. Я видел различные статьи и получил этот код:Почему это im4java дает исключение в java

try 
{ 
    IMOperation op = new IMOperation(); 
    op.addImage("d:\\abc.jpg"); 
    op.addImage("d:\\def.jpg"); 
    new ConvertCmd().run(op); 
} 
catch (IOException | InterruptedException | IM4JavaException e) 
{ 
    System.out.println(e.toString()); 
} 

это дает исключение, как

org.im4java.core.CommandException: org.im4java.core.CommandException: Invalid Parameter - d:\def.jpg 

почему это так?

1) Нужно ли устанавливать внешнюю библиотеку на моем ПК, кроме как добавлять библиотеку im4java в мое приложение?

2) Если мне нужно установить какую-то другую библиотеку на моем ПК, то мои клиенты также должны установить ее на своей машине или это их решение?

В этом вопросе здесь How do you resize an image using im4java?, ответ говорит, что мне нужен интерфейс для этого, что это значит? И если я каким-то образом установлю этот интерфейс на своей машине, что мои клиенты будут делать? Не может ли это быть встроено в базу данных H2, поэтому моим клиентам не нужно устанавливать ничего, кроме моего программного обеспечения?

+0

'im4java - это интерфейс pure-java для командной строки ImageMagick.', поэтому вам нужно установить ImageMagick. Поэтому я предполагаю, что это выполнит программу. – PeterMmm

+0

@PeterMmm, что мне делать для моих клиентов? будут ли мои клиенты отдельно устанавливать эту ImageMagick, как я? Или есть какое-то решение для этого? –

+0

Вы можете манипулировать изображениями с чистой Java. – PeterMmm

ответ

9

im4java - это просто обертка для ImageMagick, старая школьная цепочка инструментов, которую можно запустить из командной строки, а затем обрабатывать изображения. Если вы не установите ImageMagick, все не сработает!

org.im4java.core.CommandException вы столкнулись, возможно быть вызвано Convert.exe того же имени, встроенный диск утилиты на Windows, которая может конвертировать FAT томов в них NTFS

Осуществимый способ решить вашу проблему - использовать портативную версию ImageMagick. Для Windows просто загрузите zip-файл (ImageMagick-6.8.9-8-Q16-x86-windows.zip, версия может отличаться) и извлеките его. Для других платформ лучше создать портативную версию из источника.

Как только вы сделаете утилиты ImageMagick переносимыми, вы можете поместить их относительно вашей программы, а затем добавить дополнительную строку ProcessStarter.setGlobalSearchPath(...), чтобы указать путь поиска в начале вашего кода. Затем вы можете отправить их (перенос ImageMagick, im4java, вашу программу ...) в целом своим клиентам.

+0

WOW awesome job. Спасибо дорогой –

+1

Отличный ответ! Но не добавляйте Ghostscript в список зависимостей. –

Смежные вопросы