我使用Microsoft Paint创建了15248 x 6552纯色图片。我把它保存为.png和.jpg,并期望.jpg小于.png,但事实并非如此。 .jpg文件是1.49MB,而.png是391KB。难道jpeg是一种有损压缩在技术上要小吗?
我在某处读过.png更适合纯色等,所以我从网上下载了一张图片(不是纯色),并使用绘画以两种格式保存。这次jpeg小于png。这完全是由于颜色的渐变?如果是这样,为什么呢?
即使图片是纯色,jpg encodng还能更好地压缩它吗?
答案 0 :(得分:1)
不一定。
PNG是一种基于预测的算法,这意味着它试图根据先前编码的像素推导出一个像素的值。我敢打赌,预测对于实体图像来说非常准确,因此效果非常好。
JPEG接受不同的“质量级别”,这决定了压缩文件的大小。您的实验和网络版本之间的大小差异可能是由于这个原因(当然,除非您正在下载不同的图像!)。
请注意,JPEG可能会引入一些图像瑕疵,因为它是一种有损算法,而PNG会为您恢复精确的输入图像。
答案 1 :(得分:1)
预计在这种情况下PNG的性能优于JPEG。
正如其他答案中所指出的,PNG进行每行像素预测,然后进行ZLIB压缩。如果图像具有单一颜色,则预测将为所有像素产生恒定的零值,除了每行的开始。因此压缩将非常有效。我敢打赌,如果图像是"风景" (6552 x 15248而不是15248 x 6552)压缩甚至会更好一点。
相反,JPEG压缩将图像分成8x8像素的块,并且对于每个像素,它尝试精细地量化低频分量和粗略高频率分量。这适用于"自然" (摄影或渲染)图像,但对于几乎没有颜色的图像(或单个图像)则不太好。答案 2 :(得分:0)
我发现对于同一张图片,如果您保存为第 1 个 PNG,则 PNG 会更小,如果保存为第 1 个 JPG,它将比之后保存的 PNG 小