怎么得到 colorref 颜色分量
答案:1 悬赏:0 手机版
解决时间 2021-02-16 05:56
- 提问者网友:皆是孤独
- 2021-02-16 00:54
怎么得到 colorref 颜色分量
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-02-16 01:54
COLORREF类型颜色的值COLORREFcr=RGB(123,200,12);
其中的R、G、B三个分量的排列顺序是BGR。
.NET中通过数据类型Color表示颜色,该类有一个函数FromArgb(int,int,int),可以通过输入RGB三个值得到一个Color类型的颜色。同时也有一个ToArgb()函数,得到一个32位的整数值,
32位ARGB值的字节顺序为AARRGGBB。由AA表示的最高有效字节(MSB)是alpha分量值。分别由RR、GG和BB表示的第二、第三和第四个字节分别为红色、绿色和蓝色颜色分量
了解了上面的内容,颜色的转换就很简单了。
1、从Color到COLORREF
int nColor=crColor.ToArgb();
int blue=nColor&255;
int green=nColor>>8&255;
int red=nColor>>16&255;
//注意COLORREF中颜色的排列是BGR,而通过Color.ToArgb()得到的数值中颜色排列是AARRGGBB
int nColorRef=blue<<16|green<<8|red;
2、从COLORREF到Color(注意COLORREF中颜色的排列是BGR,红色分量在最后面)
int red=nColorRef&255;
int green=nColorRef>>8&255;
int blue=nColorRef>>16&255;
Color crColor=Color.FromArgb(red,green,blue); // C#编写
Color crColor(red,green,blue); // C++编写
其中的R、G、B三个分量的排列顺序是BGR。
.NET中通过数据类型Color表示颜色,该类有一个函数FromArgb(int,int,int),可以通过输入RGB三个值得到一个Color类型的颜色。同时也有一个ToArgb()函数,得到一个32位的整数值,
32位ARGB值的字节顺序为AARRGGBB。由AA表示的最高有效字节(MSB)是alpha分量值。分别由RR、GG和BB表示的第二、第三和第四个字节分别为红色、绿色和蓝色颜色分量
了解了上面的内容,颜色的转换就很简单了。
1、从Color到COLORREF
int nColor=crColor.ToArgb();
int blue=nColor&255;
int green=nColor>>8&255;
int red=nColor>>16&255;
//注意COLORREF中颜色的排列是BGR,而通过Color.ToArgb()得到的数值中颜色排列是AARRGGBB
int nColorRef=blue<<16|green<<8|red;
2、从COLORREF到Color(注意COLORREF中颜色的排列是BGR,红色分量在最后面)
int red=nColorRef&255;
int green=nColorRef>>8&255;
int blue=nColorRef>>16&255;
Color crColor=Color.FromArgb(red,green,blue); // C#编写
Color crColor(red,green,blue); // C++编写
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯