Как преобразовать имя цвета в соответствующее шестнадцатеричное представление? - PullRequest
5 голосов
/ 01 декабря 2011

Например:

blue 

преобразуется в:

#0000FF

Я написал это как:

Color color = Color.FromName("blue");

Но я надеваюне знаю, как получить шестнадцатеричное представление.

Ответы [ 5 ]

15 голосов
/ 01 декабря 2011

Ты на полпути.Используйте .ToArgb, чтобы преобразовать его в числовое значение, а затем отформатируйте как шестнадцатеричное значение.

int ColorValue = Color.FromName("blue").ToArgb();
string ColorHex = string.Format("{0:x6}", ColorValue);
4 голосов
/ 01 декабря 2011
var rgb = color.ToArgb() & 0xFFFFFF; // drop A component
var hexString = String.Format("#{0:X6}", rgb);

или просто

var hexString = String.Format("#{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
3 голосов
/ 01 декабря 2011

Ответ Ахмеда близок, но на основании вашего комментария я просто добавлю немного больше.

Код, который должен сделать эту работу:

Color color = Color.FromName("blue");
string myHexString = String.Format("#{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);

Теперь вы можетеделай что хочешь со строкой myHexString.

3 голосов
/ 01 декабря 2011
{
    Color color = Color.FromName("blue");
    byte g = color.G;
    byte b = color.B;
    byte r = color.R;
    byte a = color.A;
    string text = String.Format("Color RGBA values: red:{0x}, green: {1}, blue {2}, alpha: {3}", new object[]{r, g, b, a});

// серьезно :) это просто:

    string hex = String.Format("#{0:x2}{1:x2}{2:x2}", new object[]{r, g, b}); 

}
0 голосов
/ 09 января 2016

Вы можете использовать gplots пакет:

library(gplots)
col2hex("blue")
# [1] "#0000FF"

https://cran.r -project.org / web / packages / gplots / index.html

Insidegplots пакет код для col2hex функция:

col2hex <- function(cname)
{
    colMat <- col2rgb(cname)
    rgb(
        red=colMat[1,]/255,
        green=colMat[2,]/255,
        blue=colMat[3,]/255
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...