【发布时间】:2014-04-19 14:59:51
【问题描述】:
我想将一些图像从 tif 转换为 tif 以更改光度解释。
我找到了 ImageMagick Tool 并安装了它,在命令行中,以下命令可以正常工作并执行我想要的操作:
convert my_image.TIF dest.TIF
现在我想从 Java 程序自动启动它。 我正在使用 Eclipse 和 ImageMagick 6.8.8.-Q16 在 Windows 上工作。
我尝试使用 JMagick,但我只能使用以前的 ImageMagick-Version 来使用它,并且在转换 tif 时遇到问题(每次我得到黑色图像时,也在命令行中)。最新的适用于 Windows 的 JMagick-Version 未找到较新的 ImageMagick-Version。
所以我尝试使用 Java Process Builder 或 Runtime exec 命令,例如:
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 问题类似并且程序尝试使用一些Windows转换功能。 因此,我将 ImageMagick 文件夹添加到了我的系统变量中,并将一个包含此文件夹的新变量添加到了我在 Eclipse 中的项目构建路径中。但我仍然得到同样的错误。 还有其他地方我必须设置路径吗?或者我得到的错误的任何其他解释?
【问题讨论】:
-
您可以将 Windows 的内置
convert程序重命名为convertntfs或将 ImageMagick 的convert重命名为IMconvert。这可能比希望您始终记得在所有机器上正确设置 PATH 更好。 -
谢谢。我将 ImageMagick 的 convert 重命名为 IMconvert,效果很好。
-
太棒了!我会把它作为答案,希望你可以用一个可爱的绿色大勾号来接受:-)
标签: java eclipse imagemagick runtime.exec imagemagick-convert