【发布时间】:2012-07-12 09:49:34
【问题描述】:
我有 2 个字节以 8 位格式表示颜色
MSB LSB
01234567
RRGGBB
位 0 和 1 是垃圾。
要混合两种颜色,我应该只平均每种颜色的位数吗?
R1 = ( C1 ^ 00110000B ) >> 4;
G1 = ( C1 ^ 00001100B ) >> 2;
B1 = ( C1 ^ 00000011B );
R2 = ( C2 ^ 00110000B ) >> 4;
G2 = ( C2 ^ 00001100B ) >> 2;
B2 = ( C2 ^ 00000011B );
R3 = avg( R1 , R2 ) << 4;
G3 = avg( G1 , G2 ) << 2;
B3 = avg( B1 , B2 );
C3 = R3 + G3 + B3
其中C1 是第一种颜色,C2 是第二种颜色,C3 是混合颜色,^ 是按位与,>> 是按位右移,<< 是按位左移, xxxxxxxxB 是二进制数,avg( a , b ) 是算术平均值。
【问题讨论】:
-
对于你需要
&,而不是^的掩蔽。
标签: language-agnostic colors color-blending