繁体   English   中英

打包图像的字节顺序

[英]Byte order for packed images

因此,从http://en.wikipedia.org/wiki/RGBA_color_space ,我了解到在某些解释中,ARGB的字节顺序是从最低地址到最高地址BGRA,在一点字节顺序的机器上。

这如何影响打包数据的命名约定,例如uint8_t ar[]={R,G,B,R,G,B,R,G,B}

按照定义,小尾数以相反的顺序存储数字的字节。 如果您将它们视为字节数组,则这并不是绝对必要的,但是任何模糊有效的代码库实际上会将4个字节视为32位无符号整数。 这将使软件产生的速度提高近4倍。

现在真正的问题是为什么。 这是由于这样的事实,即如上所述,当将像素视为32位int时,编码器希望能够进行算术运算并以可预测的方式进行移位。 这取决于字节的顺序相反。

简而言之,这实际上并不奇怪,因为在小字节序机器中,最后一个字节(最高地址)实际上是最高有效字节,而第一个最低有效字节。 因此,像这样的字段自然会以相反的顺序排列,因此当被视为数字时,这是正确的方法(因为数字将显示为ARGB,但作为字节数组将显示为BGRA)。

抱歉,如果不清楚,但希望对您有所帮助。 如果您不明白或我错过了什么,请发表评论。

如果将数据存储在指定的字节数组中,则使用的是BGR格式,该格式基本上是RGB反转的:

BGR颜色空间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM