关于像素颜色的确定以及计算

0

请问一下为什么通过这些计算方式可以得出RGB:蓝、绿、红所对应的像素值(我查了一下相关计算,但还是有些疑惑)。

c 存储着从图片中获取的像素值,属于int类型。

int b = c & 0xff;			// 蓝色
int g = ( c >> 8 ) & 0xff;	// 绿色
int r = ( c >> 16 );   		// 红色
ava

2020-8-16

0

这是基本的位运算知识

int 占 4 个字节,每个字节用两个 16 进制位表示。

每个像素在显示缓冲区里对应一个 int,表示方式为:0xrrggbb。

然后通过位运算:

int b = c & 0xff;			// 蓝色
int g = ( c >> 8 ) & 0xff;	// 绿色
int r = ( c >> 16 );   		// 红色

就可以求出每个颜色分量的值。

ava
慢羊羊

2020-8-16

懂了懂了,明白了,感谢村长,这个rrggbb瞬间明白了公式 -   2020-8-17
技术讨论社区