# 【PNG图片格式】
很多萌新没搞懂,认为硬盘上储存的图片占用空间就是运行时内存占用大小,其实这样的想法是错误的。 储存在硬盘上面的图片占用空间大小,通常都是比实际利用像素数量计算的少,其实储存在硬盘上的图片,通常是经过压缩算法编码之后的图片数据,并不能直接由显卡显示,显卡读取到硬盘的图片,必须解压还原出图片原本的所有像素数据,储存到显存里,才能被显示。
这个熊猫PNG压缩网 (opens new window)是对Png压缩率特别高的网站。 需要注意的是,这个压缩是有损压缩,一般看不出来。除非图片是渐变图或者游戏里需要放大显示。
# RGB8
- 红绿蓝三通道图片,每个通道占用8位内容(一个字节)
- 每个像素占用3字节
例如上面大小为288X208的RGB8图片 占用的内存为:288X208X3/1024 = 175.5 Kib
# RGBA8
- 红绿蓝透四通道图片,每个通道占用8位内容(一个字节)
- 每个像素占用4字节
例如上面大小为288X208的RGBA8图片 占用的内存为:288X208X4/1024 = 234.0 Kib
如果图片的格式是RGBA16,代表每个通道使用两个字节存储,占用的内存计算公式为:288X208X8/1024 = 468.0 Kib。 实际上,很少会用到RGBA16、RGBA32这些格式,因为0~255表示一个通道的颜色数量基本够用了。
TIP
计算机基础知识,8位等于1个(bit)字节,是计算机内存最小的储存单位,能代表 0~255 范围的整数。