获取属于给定整数的颜色

时间:2013-05-18 19:39:55

标签: c++ colors integer allegro

我已经学习了RGBA的工作机制,所以我意识到属于不同颜色的十六进制数字可以变成简单的整数。这意味着我可以用整数存储颜色,即使它们中的一些非常大。

我的问题是如何获得属于我给程序的整数的颜色?

编辑:当然我忘了提到我也使用了Allegro,但我是新手......有什么功能可以做到吗?

1 个答案:

答案 0 :(得分:0)

如果您将颜色存储为整数,则听起来您正在使用Allegro 4。它提供了多种功能供您使用,请查看手册。

// int makecol(int r, int g, int b);

int white = makecol(255, 255, 255);
int green = makecol(0, 255, 0);

或反过来:

int r = getr(color);
int g = getg(color);
int b = getb(color);

使用Allegro 4时,订购取决于显卡。因此,对于相同的颜色,makecol()的返回值可能会有所不同,具体取决于它是否存储了RGB或BGR。因此,您必须使用上述功能才能获得正确的颜色值,并且只能在设置图形模式后使用。

如果使用Allegro 5(我强烈建议使用Allegro 4),则使用ALLEGRO_COLOR结构,它隐藏了基础实现细节,因此上述内容均不适用。