【问题标题】:How can I save an image as a PNG or JPG file with a given output file size? (pref. in C#)如何将图像保存为具有给定输出文件大小的 PNG 或 JPG 文件? (在 C# 中首选)
【发布时间】:2010-09-30 01:56:33
【问题描述】:

我想以给定的文件大小(例如 100KB)将现有图像保存为 PNG 或 JPG。

【问题讨论】:

  • 所以给定一个 PNG 或 JPG,您想调整/调整图像以适应某个大小,例如 100KB?
  • 购买 Photoshop,文件 -> 另存为。

标签: image png jpeg


【解决方案1】:

PNG 使用无损压缩,因此您无法将其压缩到一定水平以下。

在 .NET 中,您可以保存压缩后的 JPG,然后猜测完成后文件的大小。

http://msdn.microsoft.com/en-us/library/system.drawing.image.save(VS.80).aspx - 请参阅“使用压缩值保存 JPEG 图像”部分。

此外,您可以调整图像尺寸以使其更小。

【讨论】:

    【解决方案2】:

    只有在使用 JPG 2000 时,您才能将文件大小设置为特定值。使用 JPG,您将不得不尝试不同的质量值,而使用 PNG 将为给定的图像和压缩级别提供一个尺寸 - 您只能尝试调整图像的大小,从而获得更小的尺寸。

    您也可以尝试调整图像的大小,使未压缩的图像具有您想要的大小,但 PNG 尤其是 JPG 的文件大小通常会小得多。

    【讨论】:

      【解决方案3】:

      对于 PNG,没有真正的质量设置,因此您无法真正控制文件大小。

      JPG 有一个质量设置,用于确定图像的质量。较低的质量设置会导致较小的文件。但是,通常没有“提供大小为 x 的文件所需的质量”的选项。

      您可以使用一种效率相当低的方法在内存中转换为 jpg,查看输出的大小,上下调整质量并重复直到足够接近为止,从而获得相同的结果。这听起来可能很糟糕,但是如果您的图像不是太大,您可能会发现在您执行此操作时没有人注意到短暂的延迟。

      【讨论】:

      • PNG 没有质量设置,但具有不同大小的压缩级别。
      猜你喜欢
      • 2020-12-16
      • 1970-01-01
      • 2015-09-28
      • 2014-05-03
      • 2011-05-14
      • 2017-04-16
      • 1970-01-01
      • 2020-09-14
      相关资源
      最近更新 更多