Alternativa a BitConverter.ToInt32
-
22-09-2019 - |
Domanda
sto usando BitConverter.ToInt32
per il confezionamento di 3 valori byte
in un int
, in questo modo:
byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);
C'è un modo più veloce per fare questo che non comporta la creazione di una nuova int
ogni volta? Ottenere i byte su un int
è facile:
int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);
C'è un modo semplice per invertire questo processo e utilizzare bit-shifting di scrivere il RGB bytes Torna sopra un int
esistente?
Soluzione
int i = (B << 0) | (G << 8) | (R << 16);
Altri suggerimenti
Si dovrebbe prendere in considerazione la Colore struttura . Ha proprietà R, G e B e FromArgb () e ToArgb () metodi.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow