图片信息

颜色空间

用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颜色空间下的不同的存储格式:

  1. A8R8G8B8 : a,r, g ,b都占用了8位,一个像素占用4个字节

  2. A1R5G5B5 : 16位,一个像素占用两个字节,alpha通道用1位表示

  3. ARGB4444 : 16位,一个像素占用两个字节,alpha通道占了4位

  4. RGB888 : 没有alpha通道,不透明图片,一个像素占用三个字节,24位真彩色

  5. RGB565 : 一个像素占用两个字节,16位真彩色

为了优化显示效率和减少内存占用,我们可以根据app的实际应用情景,使用合适的颜色深度的图片。这在游戏中更是一种经常使用的优化方法。

alpha通道

alpha通道在不同的图片颜色深度下,保存的信息不同

通常,alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明。

最近的文章

设计模式:外观模式

当涉及到设计模式时,你可能会问: 为什么在编程中需要使用设计模式? 我们的代码不用设计模式也能正常工作。为此,我想反问:“你愿意住在一个豪华的家,还是一个只是简单的四面墙的地方?”毕竟,无论哪种,都可以满足我们的需求。一般情况下,我们会选择一个豪华的家,因为它提供了更好的设施,需要更少的维护,保养也不用那么麻烦,因为基础架构已经存在。同样的道理也适用于编程:采用设计模式的代码是很容易理解,易于维护,易于扩展的。在这系列的教程中,我们将覆盖一些对我们在编程中非常有用的设计模式。你讲了解它...…

设计模式继续阅读
更早的文章

图片

图片文件格式如果你想获取一个数码相机导出的数码相片的EXIF和GPS信息,或者你想保存图片数据为TIFF格式,你可能会用到ImageIO.framework 框架。图片IO框架引入了一个图片源的概念(CGImageSourceRef)。可以通过一个磁盘上的文件URL或者NSData对象(实际上是CFDataRef,可从NSData转换得到)来创建这个数据源。通过这个数据源,你可以获取原图片的一个CGImage对象(或者是一组CGImage,如果是gif格式)。而且,你还可以从源文件中直接获...…

图像继续阅读