为什么这些 PNG 图像的尺寸差别如此之大?

为什么这些 PNG 图像的尺寸差别如此之大?

我创建了很多图块,除了一个图块大小为 16.2 KB 外,其他图块的大小都小于 2 KB。它与我创建的另一个图块非常相似,后者大小为 1.48 KB。是的,我对这里的大小吹毛求疵,但我觉得奇怪的是,一个使用相同数量的不同颜色的类似文件却比这个大 10 倍以上。

在此处输入图片描述16.4KB

在此处输入图片描述1.48KB

两者都没有透明度,并且都使用 PNG24。我使用相同的设置批量导出所有图层。后来我尝试手动保存较大的文件,结果文件大小略大。我甚至希望底部图像稍微大一些,因为它有更多对比像素,这使得压缩簇更加困难。

答案1

虽然我无法准确指出您这边发生这种情况的确切原因,但我认为 Photoshop 可能出于多种原因而出现此问题。我记得之前读到过,出于性能原因,Photoshop 有时还会在图像文件本身内保存图像的缩略图。这里可能就是这种情况。另一种可能性是 Photoshop 内部使用了不同的机制来保存图像,而 Photoshop 并不总是将图像压缩到最大程度。

我通过 PNG Crush 运行了你的两张图片 -http://pngcrush.com/- 尽可能地最小化它们的大小并将它们下载回来,它们虽然大小不同,但都在 1kb 左右。

希望这可以帮助。

答案2

较大的图像包含一个 15204 字节的 iTXt 块,其中包含一些 Adob​​e 元数据。较小的图像也包含一个类似的块,但它更小,只有 866 字节。正如 Mario 的回答所说,您可以使用 pngcrush 将其删除。

获取“pngcheck”并运行“pngcheck -v file.png”来找出文件中的内容。

16.4KB文件:

$ pngcheck -v 6*
File: 6iutM.png (16643 bytes)
  chunk IHDR at offset 0x0000c, length 13
    32 x 64 image, 8-bit palette, non-interlaced
  chunk pHYs at offset 0x00025, length 9: 2835x2835 pixels/meter (72 dpi)
  chunk iTXt at offset 0x0003a, length 15204, keyword: XML:com.adobe.xmp
    uncompressed, no language tag
    no translated keyword, 15183 bytes of UTF-8 text
  chunk cHRM at offset 0x03baa, length 32
    White x = 0.31269 y = 0.32899,  Red x = 0.63999 y = 0.33001
    Green x = 0.3 y = 0.6,  Blue x = 0.15 y = 0.05999
  chunk PLTE at offset 0x03bd6, length 768: 256 palette entries
  chunk tRNS at offset 0x03ee2, length 7: 7 transparency entries
  chunk IDAT at offset 0x03ef5, length 506
    zlib: deflated, 32K window, maximum compression
  chunk IEND at offset 0x040fb, length 0
No errors detected in 6iutM.png (8 chunks, -712.6% compression).

1.52KB文件:

$ pngcheck -v 7*
File: 7W95m.png (1523 bytes)
  chunk IHDR at offset 0x0000c, length 13
    32 x 64 image, 8-bit palette, non-interlaced
  chunk tEXt at offset 0x00025, length 25, keyword: Software
  chunk iTXt at offset 0x0004a, length 886, keyword: XML:com.adobe.xmp
    uncompressed, no language tag
    no translated keyword, 865 bytes of UTF-8 text
  chunk PLTE at offset 0x003cc, length 21: 7 palette entries
  chunk IDAT at offset 0x003ed, length 498
    zlib: deflated, 32K window, maximum compression
  chunk IEND at offset 0x005eb, length 0
No errors detected in 7W95m.png (6 chunks, 25.6% compression).

相关内容