Alternativa a BitConverter.ToInt32
-
22-09-2019 - |
Pregunta
Estoy usando BitConverter.ToInt32
para empacar 3 valores byte
en un int
, así:
byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);
¿Hay una manera más rápida de hacer esto que no implica la creación de un nuevo int
cada vez? Obtención de los bytes de un int
es fácil:
int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);
¿Hay una forma sencilla de revertir este proceso y el uso de desplazamiento de bits a escribir el RGB bytes hacia atrás sobre un int
existente?
Solución
int i = (B << 0) | (G << 8) | (R << 16);
Otros consejos
Se debe tener en cuenta el color estructura . Tiene R, G y B y propiedades FromArgb () y ToArgb () métodos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow