具有有损压缩的.NET多页Tiff

时间:2010-05-31 20:52:25

标签: c# .net tiff multipage lossy-compression

我需要一种方法来获取几个jpgs并将它们转换为单个多页面Tiff。我有使用GDI +,但它只适用于无损压缩LZW。这意味着我的3个50KB Jpgs变成3MB多页Tiff文件。对于我正在处理的软件,我不能接受这一点。

我知道Tiff Image格式可以使用JPG压缩方案,但GDI +似乎不支持这种方式。

如果有人知道如何在.NET(C#)或执行此转换的任何组件中执行此操作。

2 个答案:

答案 0 :(得分:3)

BitMiracle LibTiff.net支持JPG(以及所有其他Tiff编解码器)以及多页tiff。我使用它,虽然与其他编解码器结合使用,并且有很好的使用经验;它也经过了很好的测试(包括单元测试)。在LGPL下可用。支持也非常好(最近发现文件中的问题> 2GB以及我快速响应和更新的代码)

希望这会对你有所帮助。对不起,我不禁对这个组件充满热情,因为它帮助了我很多并且是免费的。

答案 1 :(得分: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);
        }
    }
}

有一点需要注意的是,TIFF中有两种JPEG压缩方式,一种是由标准认可的,另一种是公认的/几乎不能容忍的。后者称为旧式JPEG,用螺栓固定在TIFF上,导致文件比TIFF中的任何其他压缩文件更多。上面的代码将使用符合标准的JPEG压缩。