请教COLORREF数值转换为OpenGL的glColor(r,g,b)快速方法

zhipeng0117 2006-05-16 02:51:19
这三个r,g,b是0~1之间的数,如果用除法也可以得到需要的结果,不过得除多次(连续几个256)还要定义几个中间变量,过程很繁琐,有没有一种简单的算法从16进制数0x00BBGGRR中提取RGB,再转到r,g,b?
...全文
229 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyh12345 2006-05-16
  • 打赏
  • 举报
回复
GetRValue
GetGValue
GetBValue
zhipeng0117 2006-05-16
  • 打赏
  • 举报
回复
刚刚试了试下面的方法可行。
B = color>>16;
color = color^(B<<16);
G = color>>8;
color = color^(G<<8);
R = color;
r = R/(float)256; g = G/(float)256; b = B/(float)256;
同时谢谢楼上的回复
romanticlife 2006-05-16
  • 打赏
  • 举报
回复
你的意思是将 索引颜色 转换为 RGB颜色 吧!就是上边的工式。
romanticlife 2006-05-16
  • 打赏
  • 举报
回复
红 = 位与 (颜色值, 255)
绿 = 位与 (颜色值, 65280) \ 256
蓝 = 位与 (颜色值, 16711680) \ 65536


That's right!

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧