为什么这个im4java在java中给出了异常

1 java im4java

我希望为我的客户提供在使用Java开发的应用程序中调整图像大小和水印的功能.搜索完Internet后,我im4java只需添加它就可以为库提供我的应用程序.我看到了不同的文章并得到了这段代码:

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());
}
Run Code Online (Sandbox Code Playgroud)

它给了例外

org.im4java.core.CommandException: org.im4java.core.CommandException: Invalid Parameter - d:\def.jpg
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

1)除了将im4java库添加到我的应用程序之外,我是否必须在我的PC上安装任何外部库?

2)如果我必须在我的电脑上安装某种其他库,那么我的客户也必须在他们的机器上安装它或者是他们的任何解决方案吗?

在这个问题这里如何使用im4java调整图像大小?,答案说我需要一个接口,这意味着什么?如果我以某种方式在我的机器上安装此接口,我的客户将需要做什么?这不能像H2数据库那样嵌入,所以我的客户不必安装除我的软件以外的任何其他东西吗?

小智 10

im4java只是ImageMagick的一个包装器,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,您的程序......)发送给您的客户.