在 C# 中将整数映射为 RGB 颜色
现在我有一个 0 到 2^24 之间的数字,我需要将它映射到三个 RGB 值。我在如何实现这一点上遇到了一些麻烦。如有任何帮助,我们将不胜感激。
So right now I have a number between 0 and 2^24, and I need to map it to three RGB values. I'm having a bit of trouble on how I'd accomplish this. Any assistance is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据颜色所在的位置,您可以使用位移位来获取各个颜色,如下所示:
上面的表达式假定
0x00RRGGBB
但您的颜色可能是0x00BBGGRR
在这种情况下只需更改周围的16, 8, 0
值。这也使用 System.Drawing.Color 而不是 System.Windows.Media.Color 或您自己的颜色类。这取决于应用程序。
Depending on which color is where, you can use bit shifting to get the individual colors like this:
The above expression assumes
0x00RRGGBB
but your colors might be0x00BBGGRR
in which case just change the16, 8, 0
values around.This also uses
System.Drawing.Color
instead ofSystem.Windows.Media.Color
or your own color class. That depends on the application.您可以执行此操作
,然后分别使用
cR
、cG
和cB
表示红色、绿色和蓝色值You can do
and then use
c.R
,c.G
andc.B
for Red, Green and Blue values respectively您可以使用 BitConverter 类从 int 获取字节:
该数组将有四个字节。前三个字节包含您的号码:
You can use the
BitConverter
class to get the bytes from the int:The array will have four bytes. The first three bytes contain your number: