我喜欢通过tinypng服务压缩png图片。它节省了高达97%的png图片大小。但有时候产生的图像看起来比原始图像更亮。这很糟糕。问题是为什么我的图像变得更亮?如何避免这种影响?
在tinypng网站上,他们写道:
Because the number of colors is reduced, 24-bit PNG files can be converted to much smaller 8-bit indexed color images. All unnecessary metadata is stripped too.
答案 0 :(得分:5)
因为tinypng使用有损压缩它可以改变图像质量,包括亮度,如果你想要对图像质量没有影响你应该看一下使用无损压缩,只消除不必要的元数据,不会影响图像质量,你可以尝试使用:
答案 1 :(得分:4)
重新压缩的图像更亮,因为tinypng删除了辅助块。我通过发送一个包含“gAMA 1.0”块的PNG来验证这一事实。
如果输入图像有gAMA块,则tinypng将其删除,图像显示为sRGB(gamma = 1 / 2.2)。
如果输入图像没有色彩空间块(gAMA,sRGB,cHRM或iCCP),或者它有那些但是它们包含的颜色空间正好是sRGB或接近sRGB,那么删除它们是非常安全的,不会改变图像亮度。
您可以使用另一个不删除辅助块的应用程序来避免这种影响,或者您可以在将图像发送到tinypng之前将其转换为sRGB色彩空间。
或者,您可以使用PNG编辑器来恢复gAMA块。有许多PNG编辑器可供选择。就个人而言,我使用pngsplit从原始中提取gAMA块并将小块PNG中的块分开,然后将“压缩”文件中的块与旧的gAMA块一起“cat”(在IHDR块之后立即放置)使用正确的gAMA形成一个新的压缩文件。