3

我需要一种方法来获取多个 jpg 并将它们转换为单个多页 Tiff。我使用 GDI+ 进行工作,但它仅适用于无损压缩 LZW。这意味着我的 3 个 50KB Jpgs 变成了 3MB 多页 Tiff 文件。对于我正在开发的软件,这不是我可以接受的。

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

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

4

2 回答 2

3

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

希望这对您有所帮助。抱歉,我不禁对这个组件充满热情,因为它对我有很大帮助并且是免费的。

于 2010-06-02T05:50:15.297 回答
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 压缩。

于 2010-06-04T13:15:34.540 回答