我想为游戏编写一个类似控制台的 gui,我从一个真正的控制台开始。所以我有一个类,指定颜色。现在我想将控制台颜色转换为 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(深白色)在我的程序中是黑色和灰色。它们应该是深灰色和浅灰色。以及如何通过四舍五入将颜色转换回来,而不仅仅是将特定颜色转换回来?