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

时间:2016-02-15 21:01:27

标签: c# .net jpeg tiff image-conversion

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

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

2 个答案:

答案 0 :(得分:6)

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

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

This MSDN link有一个关于如何设置/使用编码器参数的示例。

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

例如,TIFF文件可以是容纳JPEG(有损)和PackBits(无损)压缩图像的容器

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

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

Screenshot from GIMP showing that a TIFF file format is able to save an image with JPEG compression internally

即使您使用JPEG压缩算法结束TIFF文件,您的文件大小也可能翻倍。我不确定这是否只是我使用的程序/图像给了我这些结果,因为我没有尝试其他任何东西,但至少我没有达到原始尺寸的4倍。

另一方面,JPEG压缩似乎不是System.Drawing.Imaging.EncoderValue枚举中的一个选项。因此,可以尝试每个可用的选项,看看它们是否有效,或者找到其他可以执行此操作的库。也许试试LibTiffAvailable compression options

答案 1 :(得分:0)

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