web-dev-qa-db-fra.com

Conversion d'ints RVB en hexadécimal

Ce que j'ai est R: 255 G: 181 B: 178, et je travaille en C # (pour WP8, pour être plus précis)

Je voudrais convertir ceci en un nombre hexadécimal à utiliser comme couleur (pour définir la couleur en pixels d'un WriteableBitmap). Ce que je fais est le suivant:

int hex = (255 << 24) | ((byte)R << 16) | ((byte)G << 8) | ((Byte)B<<0);

Mais quand je fais ça, je ne fais que devenir bleu.

Des idées que je fais mal?

Aussi, pour annuler cela, pour vérifier les valeurs RVB, je vais:

int r = ((byte)(hex >> 16)); // = 0
int g = ((byte)(hex >> 8)); // = 0
int b = ((byte)(hex >> 0)); // = 255
14
Toadums
Color myColor = Color.FromArgb(255, 181, 178);

string hex = myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2");
30
NoPyGod

Vous pouvez utiliser un format de chaîne plus court pour éviter les concaténations de chaînes.

string.Format("{0:X2}{1:X2}{2:X2}", r, g, b)
3
Andreas

En utilisant une interpolation de chaîne, cela peut être écrit ainsi:

$"{r:X2}{g:X2}{b:X2}"
2
huysentruitw

Salut les humains,

//Red Value
int integerRedValue = 0;
//Green Value
int integerGreenValue = 0;
//Blue Value
int integerBlueValue  = 0;

string hexValue = integerRedValue.ToString("X2") + integerGreenValue.ToString("X2") + integerBlueValue.ToString("X2");
0
Nelson Martins