如何将图像保存为具有给定输出文件大小的PNG或JPG文件? (首先在C#中)

StackOverflow https://stackoverflow.com/questions/421056

  •  05-07-2019
  •  | 
  •  

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

有帮助吗?

解决方案

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

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

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

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

其他提示

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

你也可以尝试调整图像大小,使未压缩的图像具有你想要的大小,但是PNG,特别是JPG通常会有更低的文件大小。

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

Jpg的质量设置决定了图像的质量。较低的质量设置会导致较小的文件。但是,通常没有选择“提供大小为x的文件所需的质量”。

你可以使用一种相当低效的方法在内存中转换为jpg,看到输出有多大,向上或向下调整质量并重复直到你足够接近,就可以达到相同的效果。这可能听起来很糟糕,但如果你的图像不是太大,你可能会发现没有人注意到你这么做时的短暂延迟。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top