2

c# 中是否有与 c++ 中的 rgb 宏等效的函数?我正在尝试将托管的 c++ 文件转换为 c#。getrvalue , getgvalue 方法等是否有解决方法?

4

6 回答 6

4

C++ 中的 RGB 宏将每个通道的一个字节作为输入。

C# 有一个等价的功能:

Color.FromArgb(int alpha, int red, int green, int blue)
Color.FromArgb(int red, int green int blue)

您可以指定 RGB 或 RGBA 值。

于 2013-10-09T19:27:12.683 回答
3

You're looking for Color.FromArgb(int), which does exactly that.

于 2013-10-09T19:26:36.857 回答
1

这取决于您如何存储 RGB 数据,即 32 位、24 位、16 位、15 位、12 位等。

您通常可以使用>>and&运算符提取位字段,例如

int r = ( color >> 16) & 0xFF;

但这取决于如何定义颜色。

于 2013-10-09T19:26:46.187 回答
1

你可以使用Color结构。文档MSDN

于 2013-10-09T19:27:44.917 回答
0

您可以使用System.Drawing.ColorTranslator来实例化一个Color对象,然后分别访问其R,GB属性。

于 2013-10-09T19:29:54.030 回答
0

您可以将其定义为 c# 中的函数,因为它相对容易。

((ushort)(((byte)(r) | ((ushort)((byte)(g)) << 8)) | (((uint)(byte)(b)) << 16)));
于 2013-10-09T19:23:41.383 回答