2010-05-31 78 views
3

我需要一種方法來獲取幾個jpgs並將它們轉換爲單頁多頁Tiff。我有使用GDI +的工作,但它只適用於無損壓縮LZW。這意味着我的3個50KB Jpgs變成了3MB的多頁Tiff文件。對於我正在開發的軟件,這不是我能接受的。帶有損壓縮的.NET多頁Tiff

我知道Tiff圖像格式可以使用JPG壓縮方案,但GDI +似乎不支持這一點。

如果有人知道如何在.NET(C#)或任何執行此轉換的組件中執行此操作。

回答

3

BitMiracle LibTiff.net支持JPG(以及其他所有Tiff編解碼器)以及多頁面tiff。我已經使用它,雖然與其他編解碼器結合在一起,並有很好的體驗;它也經過了很好的測試(包括單元測試)。根據LGPL提供。支持也非常好(最近發現文件> 2GB的問題,我的快速反應和更新的代碼)

希望這可以幫助你。對不起,我不禁對這個組件充滿熱情,因爲它幫助了我很多並且是免費的。

+1

從版本2.0開始LibTiff.Net免費提供BSD許可下的所有用途。 – Bobrovsky 2010-08-04 06:13:53

+1

經過許多艱苦的工作設法使用這個庫(BitMiracle LibTiff.Net),結果甚至比需要的更好 - 爲我保存彩色分頁tiff,只需要一半的文件大小。 – 2016-08-09 12:06:47

1

我爲Atalasoft工作,我們有.NET工具,可以輕鬆完成。

public void CombineIntoTiff(string outputTiff, params string[] inputFiles) 
{ 
    using (FileStream stm = new FileStream(outputTiff, FileMode.Create)) { 
     TiffEncoder enc = new TiffEncoder(); 
     enc.Compression = TiffCompression.JpegCompression; 
     enc.Append = true; 
     foreach (string file in inputFiles) { 
      AtalaImage image = null; 
      try { image = new AtalaImage(file); } catch { continue; } 
      enc.Save(image); 
     } 
    } 
} 

有一點要注意的是,有JPEG壓縮的兩種口味在TIFF,一個由標準和被確認/勉強容忍一個制裁。後者被稱爲舊式JPEG,它被固定在TIFF上,並且導致比TIFF中的任何其他壓縮文件都更多的文件被破壞。上面的代碼將使用符合標準的JPEG壓縮。

+0

如何用這個調整Jpeg壓縮等級? – Don 2017-08-09 18:55:36

+0

enc.JpegQuality = someIntegerFrom0to100; – plinth 2017-08-09 20:01:49