Alternative à BitConverter.ToInt32
-
22-09-2019 - |
Question
J'utilise BitConverter.ToInt32
pack 3 valeurs byte
dans un int
, comme suit:
byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);
Y at-il un moyen plus rapide de le faire qui ne concerne pas la création d'un nouveau int
à chaque fois? Obtenir les octets sur un int
est facile:
int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);
Yat-il un moyen simple d'inverser ce processus et utiliser le bit de décalage pour écrire le RGB octets de retour sur une int
existante?
La solution
int i = (B << 0) | (G << 8) | (R << 16);
Autres conseils
Vous devriez considérer la structure Color . Il a des propriétés de R, G et B et des méthodes FromArgb () et ToArgb ().
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow