例如:
blue
转换为:
#0000FF
我把它写成:
Color color = Color.FromName("blue");
但我不知道如何获得十六进制表示。
答案 0 :(得分:15)
你在那里一半。使用.ToArgb
将其转换为数字值,然后将其格式化为十六进制值。
int ColorValue = Color.FromName("blue").ToArgb();
string ColorHex = string.Format("{0:x6}", ColorValue);
答案 1 :(得分:4)
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);
答案 2 :(得分:3)
{
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});
}
答案 3 :(得分:3)
艾哈迈德的答案很接近,但根据你的评论,我会再多补充一点。
应该使这项工作的代码是:
Color color = Color.FromName("blue");
string myHexString = String.Format("#{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
现在你可以用字符串myHexString做任何你想做的事。
答案 4 :(得分:0)
您可以使用gplots
包:
library(gplots)
col2hex("blue")
# [1] "#0000FF"
https://cran.r-project.org/web/packages/gplots/index.html
在gplots
内部包中col2hex
函数的代码是:
col2hex <- function(cname)
{
colMat <- col2rgb(cname)
rgb(
red=colMat[1,]/255,
green=colMat[2,]/255,
blue=colMat[3,]/255
)
}