3

ゲームを変更するツールを作成しています。ゲームは float を使用して RGB データ (0.0 -> 1.0 の範囲) を格納します。フロートRGBデータから16進文字列/バイトRGBデータに変換することについて、どのように提案するのが最善ですか?

4

2 に答える 2

12
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));
于 2013-02-04T13:33:46.570 に答える
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

于 2013-02-04T13:36:37.347 に答える