我的要求是将多个jpeg文件转换为多页Tiff文件。最初,我已经完成了这个post并且我能够使用jai_imageio库在java中创建tiff文件,但不幸的是这些库不是开源的。后来,我听说ImageMagick可能完全能给我我想要的东西。我在我的机器上安装了ImageMagick,并编写了一个小实用程序,它将多个jpeg作为输入,并提供一个TIFF文件作为输出。
代码:
try {
Process p = Runtime
.getRuntime()
.exec("C:/Program Files/ImageMagick-6.8.8-Q16/convert E:/1.jpg E:/2.jpg E:/3.jpg -compress JPEG "
+"E:/mul.tiff");
p.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
该实用程序工作正常,但上述程序的问题是,我无法调试,即使我为输入文件指定了错误的路径,上面的代码也不会抛出任何错误。
我知道Jmagick为ImageMagick提供Java接口。如果有人在java中为我提供了一个Jmagick示例程序,它可以通过多个jpegs作为输入来创建多页tiff,这对我很有帮助。
感谢。
答案 0 :(得分:0)
经过大量的谷歌搜索,我发现im4java帮助我将多个jpegs转换为单个tiff。它是ImageMagick的java包装器。对于设置和示例,请访问this。下载所需的jars here并将其放入类路径中。
以下是我正在使用的示例代码。
// create the operation, add images and operators/options
ConvertCmd cmd = new ConvertCmd();
IMOperation op = new IMOperation();
op.addImage("E:/jpeg/001.jpg");
op.addImage("E:/jpeg/003.jpg");
op.addImage("E:/jpeg/006.jpg");
op.compress("JPEG");
op.format("TIFF");// set the format.
op.addImage("E:/im4j-compressed.tiff");
// execute the operation
cmd.run(op);