ゲーム用のコンソールのような GUI を書きたいのですが、実際のコンソールから始めます。だから私は色を指定するクラスを持っています。ここで、consolecolor を rgb (24 ビット) に、またはその逆に変換したいと考えています。私はこれを試しました:
int d = (((int)col & 8) != 0) ? 255 : 128;
r = (((int)col & 4) != 0) ? d : 0;
g = (((int)col & 2) != 0) ? d : 0;
b = (((int)col & 1) != 0) ? d : 0;
4 ビット色には、このビットスキームがあります: drgb。d が 0 の場合、色は暗くなり、1 の場合、RGB 値は 255 になります。私の問題は、私のプログラムでは、色 1000 (明るい黒) と色 0111 (暗い白) が黒と灰色です。それらはダークグレーとライトグレーでなければなりません。また、特定の色を元に戻すだけでなく、丸めを使用して色を元に戻す方法は?