如何将任意字符串转换为十六进制颜色代码

时间:2012-11-13 11:55:38

标签: c# .net string hex

我有一个任意字符串列表。我想将这些转换为十六进制颜色代码。

代码不应该是随机的,因为每次转换相同的字符串时,方法必须返回相同的颜色代码。

SOLUTION:

public string GetColorCode(string value)
{
    var i = value.GetHashCode() & 0x00FFFFFF;
    return i.ToString("X6");
}

1 个答案:

答案 0 :(得分:3)

您可以使用GetHashCode()作为起点。由于GetHasCode()返回一个完整的整数,你通常只需要3个字节来定义RGB中的颜色,你必须通过以下任何一个来跳过无意义的部分:

var color = str.GetHashCode() & 0x00FFFFFF;

 var color = str.GetHashCode()>>8;

此保证具有相同的字符串,相同的颜色。