【问题标题】:Converting JPEG to TIFF in C# quadruples file size在 C# 中将 JPEG 转换为 TIFF 使文件大小翻了两番
【发布时间】:2016-02-15 21:01:26
【问题描述】:

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

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

【问题讨论】:

  • 这些图片是照片还是其他?
  • 这是因为典型的 TIFF 是未压缩的,而 jpg 是使用 JPEG 压缩的。 TIFF 格式实际上允许 TIFF 在内部使用 JPEG 压缩,但我认为这在实践中并不常见。为什么要使用 TIFF?是为了与特定软件兼容吗?
  • @Brannon 他们都是文件。有些是扫描的,有些是从 pdf 文件中导出的。
  • 文件是黑白的吗?用 PNG 甚至 GIF 来保存怎么样?
  • @AyushISM,你的意思是 JPEG 压缩的 TIFF 吗?

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


【解决方案1】:

如果您绝对需要将 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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 2021-03-31
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多