如何知道 PNG 文件的压缩级别以及是否有损?

如何知道 PNG 文件的压缩级别以及是否有损?

在 Windows 中我能否知道 PNG 文件是否经过压缩以及如何压缩(至少是否是无损压缩)?当我从 Windows 资源管理器打开标准文件属性对话框时,我看不到与此相关的属性。

答案1

PNG 总是使用 DEFLATE 算法进行压缩,这是 PNG 规范所要求的。这与 zip 压缩器等使用的算法相同。

PNG 没有有损压缩算法。PNG 始终是无损的。

免责声明:有一些方法可以通过降低图像质量(颜色深度)来“优化” PNG 大小将其保存为 PNG。这与 PNG 本身无关,并且无法在 PNG 或原始文件中可靠地检测到。

答案2

估算任何图像文件的压缩率其实非常简单。您必须知道图像的宽度、高度和位深度。要计算未压缩的原始图像数据需要多少数据,您必须做这件简单的事情:raw data size = image width * image heigth * (bits per pixel / 8)。然后只需raw data size除以 PNG 文件大小,即可得到估计的压缩率(由于标题等原因,不是准确值)。例如,640x480x32 图像需要640 * 480 * (32 / 8)1 273 800 字节。现在假设您的 PNG 有 200kB。除以 (200 * 1024) / 1273800。这会给出大约 0.16 的压缩率。

请记住一个事实。有时 24 位图像实际上存储为 32 位值。因此您必须考虑到这一点。

相关内容