像素的位区别
像素图的位图区别如下所示:
1、像素图的位图一般区分为8位、16位和32位。这里的位数指的是图像中的一颜色的数量,通常指的2的8次方、16次方和32次方。
2、8位指的是当前图像有2的8次方个颜色,共256种颜色。这样的图像通常指的是GIF文件格式,因为这是网页标准格式颜色,这256种颜色可以在不同的浏览器中正确显示,不会偏色。
3、16位是当前图像有2的16次方个颜色,共65536种颜色。这种图像的显示效果要强于8位文件,但在颜色丰富的图像中,显示会出现不完美的情况,早期电脑显示硬件不发达的时候,曾用过次种颜色位数做为32位真彩色的过渡。
4、32位是当前图像有2的32次方个颜色,共4294967296种颜色,这也就是我们常见的图像、照片颜色。
5、作为实际应用过程,我们常常需要将彩色的文件扣图出来进行处理,因此,出现了.tag,.tiff等格式后缀名的图像文件,他们除了具有32位色深的颜色位数,还额外添加了一个8位的透明通道来记录当前扣图的透明度情况。
像素格式描述了像素数据存储所用的格式。定义了像素在内存中的编码方式。下面的像素格式 (PF_*) 类型定义了:
本地格式 (PF_A8R8G8B8 以及其他大量的不同的类型)
这意味着在内存中使用了本地储存方式(big endian或者little endian,包括16,24,32位)的整形数据。同时意味着可以把PF_A8R8G8B8格式的看作一个32位的整形数组,在16进制表现为0xAARRGGBB。这些字母的意义我们在稍后会提供。
位组格式Byte formats(PF_BYTE_*)
在这种格式下每个通道对应一个byte,通道在内存里的组织方式和格式名称定义的相同。例如PF_BYTE_RGBA格式的像素包含了四个byte,一个对应红色,一个绿色,一个蓝色,以及一个alpha通道。
Short格式(PF_SHORT_*)
在这种格式下每个通道对应一个unsigned short数据(16 bit整型),通道在内存里的组织方式和格式名称定义的相同。例如PF_BYTE_RGBA格式的像素包含了四个unsigned short数据,一个对应红色,一个绿色,一个蓝色,以及一个alpha通道。
Float16 格式(PF_FLOAT16_*)
在这种格式下每个通道对应一个16 bit浮点数,通道在内存里的组织方式和格式名称定义的相同。例如PF_BYTE_RGBA格式的像素包含了四个16 bit浮点数数据,一个对应红色,一个绿色,一个蓝色,以及一个alpha通道。16 bit浮点数也被称为半浮点(half float),非常类似于IEEE 对32bit单精度浮点数标准,只不过它只有5个exponent位和10个mantissa位而已。值得注意,这并不是一个标准的C++数据,CPU对其支持也不够好,不过GPU却能如同处理32bit浮点数一样高效的处理它。
Float32格式(PF_FLOAT32_*)
在这种格式下每个通道对应一个32 bit浮点数,通道在内存理的组织方式和格式名称定义的相同。例如PF_BYTE_RGBA格式的像素包含了四个32 bit浮点数数据,一个对应红色,一个绿色,一个蓝色,以及一个alpha通道。在C++中,这个数据就是普通的float。just “float”。
压缩格式formats (PF_DXT[1-5])
S3TC压缩纹理格式。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!