2

我的要求是将多个 jpeg 文件转换为多页 Tiff 文件。最初,我浏览了这篇文章,并且能够使用 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 示例程序,它可以通过多个 jpeg 作为输入创建多页 tiff,这对我很有帮助。

谢谢。

4

1 回答 1

0

经过大量的谷歌搜索,我找到了 im4java,它帮助我将多个 jpeg 转换为单个 tiff。它是ImageMagick的 java 包装器。对于设置和示例,请访问在此处下载所需的 jar并将其放入您的类路径中。

这是我正在使用的示例代码。

     // 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);
于 2014-02-18T06:49:27.060 回答