颜色空间
用RGB模式表示颜色是颜色空间的其中一种分类,它是众多存储颜色方法中的一种,另一种颜色空间是灰阶空间。所有的图形只有黑色和白色。我这里推荐一篇翻译文章:IOS中图形图像处理第一部分:位图图像原图修改,虽然不是很详细,但是起码讲解很生动。
颜色深度
颜色深度标准通常有以下几种:
8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。
16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。
24位真彩色,每个像素所能显示的彩色数为24位,即2的24次方,约1680万种颜色。
32位真彩色,即在24位真彩色图像的基础上再增加一个表示图像透明度信息的Alpha通道。
例如:一个使用16位存储的图片,可能5位表示红色,5位表示绿色,5位表示蓝色,,一位是alpha。在这种情况下,它要么表示透明要么不是。一个使用32位存储的图片,每8位表示红绿蓝,和alpha通道。在这种情况下,就不光可以表示透明还是不透明,alpha通道还可以表示256级的半透明度。
下面举例RGB颜色空间下的不同的存储格式:
A8R8G8B8 : a,r, g ,b都占用了8位,一个像素占用4个字节
A1R5G5B5 : 16位,一个像素占用两个字节,alpha通道用1位表示
ARGB4444 : 16位,一个像素占用两个字节,alpha通道占了4位
RGB888 : 没有alpha通道,不透明图片,一个像素占用三个字节,24位真彩色
RGB565 : 一个像素占用两个字节,16位真彩色
为了优化显示效率和减少内存占用,我们可以根据app的实际应用情景,使用合适的颜色深度的图片。这在游戏中更是一种经常使用的优化方法。
alpha通道
alpha通道在不同的图片颜色深度下,保存的信息不同
通常,alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明。