在 C# 中将 JPEG 转换为 TIFF 文件大小翻四倍

Converting JPEG to TIFF in C# quadruples file size

我正在尝试将 JPG 文件转换为 TIFF 使用 System.Drawing.Image.Save(String, ImageFormat) 但结果 TIFFJPEG 文件大小的 4 倍。例如,200KB JPEG 结果为 800KB TIFF.

如何获得 TIFF 文件或与 JPEG 大小大致相同的文件?

如果您绝对需要将 JPEG 转换为 TIFF。您可以尝试使用重载方法 Image.Save Method (Stream, ImageCodecInfo, EncoderParameters)

您需要传入压缩设置为 JPEG 的编码器参数。

This MSDN link 有一个关于如何 set/use 编码器参数的例子。

根据 Wikipedia 的引述,您 应该 能够以大致相同的文件大小保存 TIFF。

A TIFF file, for example, can be a container holding JPEG (lossy) and PackBits (lossless) compressed images

编辑: 刚刚尝试使用 GIMP(开源图像编辑程序)并将 JPEG 保存为 TIFF,但使用了不同的压缩设置。以下是结果:

原始 JPEG 文件: 256KB
JPEG 压缩的 TIFF 文件: 598KB
采用 LZW 压缩的 TIFF 文件: 2,239KB

看起来即使您结束对 TIFF 文件使用 JPEG 压缩算法,您的文件大小也可能会增加一倍。我不确定这是否只是我使用的 program/image 给了我这些结果,因为我没有尝试其他任何东西,但至少我没有得到原始大小的 4 倍。

另一方面,JPEG 压缩在 System.Drawing.Imaging.EncoderValue 枚举中似乎不是一个选项。因此,也许尝试每个可用的选项,看看它们是否有效,或者找到其他一些可能能够做到这一点的库。也许试试 LibTiff

一个jpeg文件被压缩,没有tiff的完整数据。 tiff 文件总是比 jpeg 文件大得多。 Photoshop tiff 的基本格式。布兰登的回答也很好。