1

我想为我的客户提供在使用 Java 开发的应用程序中调整图像大小和水印图像的能力。在互联网上搜索后,我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());
}

它给出了例外

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

为什么呢?

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

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

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

4

1 回答 1

11

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、您的程序...)一起发送给您的客户。

于 2014-10-02T14:27:56.447 回答