Альтернатива BitConverter.toint32
-
22-09-2019 - |
Вопрос
я использую BitConverter.ToInt32
чтобы упаковать 3 byte
ценности в int
, вот так:
byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);
Есть ли более быстрый способ сделать это, который не включает в себя создание нового int
каждый раз? Вытащить байты из int
это легко:
int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);
Есть ли простой способ обратить вспять этот процесс и использовать битовые переключения, чтобы написать байты RGB обратно через существующие int
?
Решение
int i = (B << 0) | (G << 8) | (R << 16);
Другие советы
Вы должны рассмотреть Цветовая структура. Анкет Он обладает свойствами R, G и B и от методов FromArgb () и toArgb ().
Не связан с StackOverflow