在 C# 中将 JPEG 转换为 TIFF 文件大小翻四倍
Converting JPEG to TIFF in C# quadruples file size
我正在尝试将 JPG
文件转换为 TIFF
使用
System.Drawing.Image.Save(String, ImageFormat)
但结果 TIFF
是 JPEG
文件大小的 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 的基本格式。布兰登的回答也很好。
我正在尝试将 JPG
文件转换为 TIFF
使用
System.Drawing.Image.Save(String, ImageFormat)
但结果 TIFF
是 JPEG
文件大小的 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 的基本格式。布兰登的回答也很好。