2014-02-17 113 views
1

我的要求是將多個JPEG文件轉換爲多頁TIFF文件。起初,我已經通過這個post過去了,我能創建使用jai_imageio庫,但不幸的是,這些庫不開放源代碼Java中的TIFF文件。後來,我聽說ImageMagick這可以給我想要的東西。我在我的機器上安裝了ImageMagick,並且編寫了一個小型實用程序,它將多個jpegs作爲輸入,並提供一個TIFF文件作爲輸出。ImageMagick的例子多個JPEG文件,多頁TIFF轉換成JAVA

代碼:

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它提供了一個Java接口ImageMagick的。如果有人爲我提供了一個Jmagick示例程序,它可以通過多個jpegs作爲輸入創建多頁面tiff,這對我會有所幫助。

謝謝。

回答

0

很多谷歌搜索後,我發現im4java這有助於我多JPEG文件轉換爲單個TIFF。這是一個用於ImageMagick的java包裝。有關設置和示例,請訪問this。下載所需的罐子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);