我想以给定的文件大小(例如 100KB)将现有图像保存为 PNG 或 JPG。
3 回答
只有使用 JPG 2000 才能将文件大小设置为特定值。使用 JPG,您将不得不尝试不同的质量值,而使用 PNG 将为给定的图像和压缩级别提供一个尺寸 - 您只能尝试调整图像的大小,从而获得更小的尺寸。
您也可以尝试调整图像的大小,以便未压缩的图像具有您想要的大小,但是 PNG 尤其是 JPG 通常会具有较小的文件大小。
PNG使用无损压缩,因此您不能将其压缩到一定水平以下。
在 .NET 中,您可以保存带有压缩的 JPG,并猜测完成后文件的大小。
http://msdn.microsoft.com/en-us/library/system.drawing.image.save(VS.80).aspx - 请参阅“使用压缩值保存 JPEG 图像”部分。
此外,您可以调整图像尺寸以使其更小。
对于 PNG,没有真正的质量设置,因此您无法真正控制文件大小。
Jpg 有一个质量设置,它决定了图像的质量有多好。较低的质量设置会导致较小的文件。但是,通常没有“提供大小为 x 的文件所需的质量”的选项。
您可以使用一种效率相当低的方法在内存中转换为 jpg,查看输出的大小,上下调整质量并重复直到足够接近,从而获得相同的结果。这听起来可能很糟糕,但如果您的图像不是太大,您可能会发现在您执行此操作时没有人注意到短暂的延迟。