【发布时间】:2011-11-24 18:55:21
【问题描述】:
我正在保存大量的小 png 文件以用于手机上的游戏,因此空间非常宝贵。
我正在尝试找出文件大小背后的逻辑,以便我可以最有效地保存内容,但即使在使用 pngcrush 之后,大小也完全不一致。
我保存了一张 1x1 的图片,需要 3kb。我有另一个 23x21 图像,只需要 2kb。我有两张大小几乎相同的图像,但一张需要 6kb,另一张需要 13kb。我将图像高度加倍并将一张图像复制到另一张图像的空白处并保存。合并后的图像只有 11kb!
为什么 1x1 图片比 23x21 图片大?为什么我可以将 13kb 的图像和 6kb 的图像合并得到 11kb 的图像?
这是我正在谈论的图像(第一张和第二张图像之间有一个 1x1 像素。很难看到,所以我只提供 URL:http://g42.org/temp/png/1x1.png):
example http://g42.org/temp/png/hat.png example http://g42.org/temp/png/1x1.png example http://g42.org/temp/png/helmet1.png example http://g42.org/temp/png/helmet2.png example http://g42.org/temp/png/helmet1_2.png
【问题讨论】:
-
您是如何创建 .png 文件的? png 文件中是否有非图像元数据?
-
我正在使用 Photoshop。我没有故意将元数据放入文件中,但我会认为使用 pngcrush 会从文件中删除它。
-
1x1 图片?那不应该使用超过 300 个字节..
-
xxd 1x1.png > 1x1.xxd(十六进制转储)显示 1x1 图像中有一个 Photoshop ICC profile。如果您可以告诉 Photoshop 使用 sRGB 颜色配置文件,则可能会减小尺寸。 (至少这是 GIMP 用来创建 122 字节版本的内容)。 -
好的,这解决了 1x1 的奥秘。我去分配配置文件并设置“不对该文档进行颜色管理”。该文件保存为 140 字节。我不确定这会产生什么影响。我尝试了其他图像。每张图像似乎可以节省大约 2 到 3kb。但是,它仍然没有解释组合图像的尺寸减小。新的组合图像为 7.7kb。原件是 5kb 和 11kb。即使没有颜色配置文件,组合图像仍然更小。
标签: compression png