簡體   English   中英

將 Integer 映射到 C# 中的 RGB 顏色

[英]Mapping an Integer to an RGB color in C#

所以現在我有一個介於 0 和 2^24 之間的數字,我需要將其 map 轉換為三個 RGB 值。 我在如何實現這一點上遇到了一些麻煩。 任何幫助表示贊賞。

你可以做

Color c = Color.FromArgb(someInt);

and then use c.R , c.G and c.B for Red, Green and Blue values respectively

根據哪個顏色在哪里,您可以使用位移來獲得單個 colors,如下所示:

int rgb = 0x010203;
var color = Color.FromArgb((rgb >> 16) & 0xff, (rgb >> 8) & 0xff, (rgb >> 0) & 0xff);

上面的表達式假定0x00RRGGBB但您的 colors 可能是0x00BBGGRR在這種情況下只需更改16, 8, 0值。

這也使用System.Drawing.Color代替System.Windows.Media.Color或您自己的顏色 class。 這取決於應用程序。

您可以使用BitConverter class 從 int 獲取字節:

byte[] values = BitConverter.GetBytes(number);
if (!BitConverter.IsLittleEndian) Array.Reverse(values);

該數組將有四個字節。 前三個字節包含您的號碼:

byte b = values[0];
byte g = values[1];
byte r = values[2];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM