为什么连续两次保存一张图片在 Paint 中会产生不同的二进制文件

Why is saving a picture twice in a row producing different binary in Paint

我觉得这有点奇怪。 在 Windows 上打开画图(我使用的是 Windows 7)并绘制一些东西(任何东西)。 然后另存为 .png,例如名为 1.png。然后直接保存 'n' 份其他副本而不修改图像(2.png、3.png、..等)。

我注意到 1.png 的校验和与 2/3/4/../n.png 不同。 1.png 与其他图像相比,在这些方面也有所不同(有时更小,有时更大)。

这是怎么回事?

关于 PNG 格式的维基百科文章似乎暗示其中有一个时间戳。仅此一项就可以了。

没有解释为什么后续文件具有相同的校验和。

文件大小的差异是由于压缩程序使用的扫描线过滤器的选择所致。我不知道为什么您的应用程序在多次压缩图像时会使用一组不同的过滤器,但这是无害的。

Mohammad 发布的两张图片中没有时间戳。根据 "pngcheck -v",唯一的区别在于 IDAT 块的内容。 ImageMagick 计算的图像签名是相同的。两个图像都不包含时间块。

"pngcrush" 生成两个相同的图像,但文件大小更小(11493 字节)。

根据 "pngtest -mv"(pngtest 包含在 libpng 发行版中),一张图片仅使用 PNG "none" 过滤器,而另一张图片使用 "none"、"sub"和 "up" 个过滤器。