RGB 宏 c# 等效项
本文关键字:RGB | 更新日期: 2023-09-27 18:34:34
c# 中是否有 c++ 中 rgb 宏的等效函数?我正在尝试将托管的c ++文件转换为c#。getrvalue,getgvalue方法等是否有解决方法?
C++ 中的 RGB 宏为每个通道提供一个字节作为输入。
C# 有一个等效的函数:
Color.FromArgb(int alpha, int red, int green, int blue)
Color.FromArgb(int red, int green int blue)
您可以指定 RGB 或 RGBA 值。
您正在寻找Color.FromArgb(int)
,它正是这样做的。
这取决于您存储 RGB 数据的方式,即 32 位、24 位、16 位、15 位、12 位等。
通常可以使用>>
和&
运算符提取位字段,如下所示
int r = ( color >> 16) & 0xFF;
但这取决于颜色的定义方式。
您可以使用
Color
结构。文档 MSDN
您可以在 c# 中将其定义为函数,因为它相对容易。
((ushort)(((byte)(r) | ((ushort)((byte)(g)) << 8)) | (((uint)(byte)(b)) << 16)));
您可以使用
System.Drawing.ColorTranslator
实例化Color
对象,然后分别访问其R
、G
和B
属性。