将RGB浮点数据转换为十六进制字符串

时间:2013-02-04 13:27:51

标签: c# rgb

我正在编写一个修改游戏的工具,游戏使用float来存储RGB数据(范围从0.0 - > 1.0)。您最好如何建议我从浮点RGB数据转换为十六进制字符串/字节RGB数据?

2 个答案:

答案 0 :(得分:11)

var rgbString = string.Format("#{0}{1}{2}", 
    ((int)(redValue * 255)).ToString("X2"), 
    ((int)(greenValue * 255)).ToString("X2"), 
    ((int)(blueValue * 255)).ToString("X2"));

编辑(可能更易读的代码):

var rgbString = string.Format("#{0:X2}{1:X2}{2:X2}", 
    (int)(redValue * 255), 
    (int)(greenValue * 255), 
    (int)(blueValue * 255));

答案 1 :(得分:1)

float rVal = 0.5f;
float gVal = 0.94140625f;
float bVal = 0.21484375f;

byte rByte = (byte)(rVal * 256);
byte gByte = (byte)(gVal * 256);
byte bByte = (byte)(bVal * 256);

string rgb = rByte.ToString("X2") + gByte.ToString("X2") + bByte.ToString("X2");

结果:

  

80F137