Alternative zu bitconverter.toint32
-
22-09-2019 - |
Frage
Ich benutze BitConverter.ToInt32
zu packen 3 byte
Werte in an int
, wie so:
byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);
Gibt es einen schnelleren Weg, dies zu tun, der nicht die Schaffung eines neuen beinhaltet int
jedes Mal? Die Bytes aus einem herausholen int
ist einfach:
int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);
Gibt es eine einfache Möglichkeit, diesen Prozess umzukehren und die RGB-Bytes mit Bitverschiebung über einen vorhandenen zu schreiben? int
?
Lösung
int i = (B << 0) | (G << 8) | (R << 16);
Andere Tipps
Sie sollten die berücksichtigen Farbstruktur. Es hat R-, G- und B -Eigenschaften sowie aus Methoden von argb () und toArgb ().
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow