ImageMagick示例将多个JPEG文件转换为JAVA中的多页TIFF

时间:2014-02-17 13:18:42

标签: java imagemagick tiff jmagick

我的要求是将多个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,这对我很有帮助。

感谢。

1 个答案:

答案 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);