如何解决在C#中将整数映射为RGB颜色
|| 所以现在我有一个介于0和2 ^ 24之间的数字,我需要将其映射到三个RGB值。我在完成此操作时遇到了一些麻烦。任何帮助表示赞赏。解决方法
你可以做
Color c = Color.FromArgb(someInt);
然后分别对红色,绿色和蓝色值分别使用c.R
,c.G
和ѭ3values
,根据颜色的不同,您可以使用位移来获得各个颜色,如下所示:
int rgb = 0x010203;
var color = Color.FromArgb((rgb >> 16) & 0xff,(rgb >> 8) & 0xff,(rgb >> 0) & 0xff);
上面的表达式假设0x00RRGGBB
,但是您的颜色可能是0x00BBGGRR
,在这种情况下,只需更改16,8,0
的值即可。
这也会使用System.Drawing.Color
代替System.Windows.Media.Color
或您自己的颜色等级。这取决于应用程序。
,您可以使用BitConverter
类从int获取字节:
byte[] values = BitConverter.GetBytes(number);
if (!BitConverter.IsLittleEndian) Array.Reverse(values);
该数组将有四个字节。前三个字节包含您的号码:
byte b = values[0];
byte g = values[1];
byte r = values[2];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。