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

Ayu*_*ISM 1 .net c# jpeg tiff image-conversion

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

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

Ser*_*gey 6

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

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

该MSDN链接有一个关于如何设置/使用编码器参数的示例.

基于维基百科的这句话,您应该能够以大致相同的文件大小保存TIFF.

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

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

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

GIMP的屏幕截图显示TIFF文件格式能够在内部使用JPEG压缩保存图像

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

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