8ビット形式で色を表す2バイトがあります
MSB LSB
01234567
RRGGBB
ビット 0 と 1 はトラッシュです。
2 つの色をブレンドするには、色ごとのビット数を平均化する必要がありますか?
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
は最初の色、は 2番目C2
、C3
は混合色、^
はビット単位の AND、>>
はビット単位の右シフト、<<
はビット単位の左シフト、xxxxxxxxB
は 2 進数、avg( a , b )
は算術平均です。