c ++中的rgb宏在c#中是否有等效函数?我试图将托管的c ++文件转换为c#。 是否有getrvalue,getgvalue方法等的解决方法。
答案 0 :(得分:4)
C ++中的RGB宏为每个通道输入一个字节作为输入。
C#具有等效功能:
Color.FromArgb(int alpha, int red, int green, int blue)
Color.FromArgb(int red, int green int blue)
您可以指定RGB或RGBA值。
答案 1 :(得分:3)
您正在寻找Color.FromArgb(int)
,这正是如此。
答案 2 :(得分:1)
这取决于您存储RGB数据的方式,即32位,24位,16位,15位,12位等。
您通常可以使用>>
和&
运算符提取位字段,例如
int r = ( color >> 16) & 0xFF;
但这取决于颜色的定义方式。
答案 3 :(得分:1)
您可以使用Color
结构。文档MSDN
答案 4 :(得分:0)
您可以将其定义为c#中的函数,因为它相对容易。
((ushort)(((byte)(r) | ((ushort)((byte)(g)) << 8)) | (((uint)(byte)(b)) << 16)));
答案 5 :(得分:0)
您可以使用System.Drawing.ColorTranslator
来实例化Color
对象,然后分别访问其R
,G
和B
属性。