2

我用来将 3 个值BitConverter.ToInt32打包到一个中,如下所示:byteint

byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);

有没有一种更快的方法来做到这一点,而不是int每次都创建一个新的?从 an 中获取字节int很容易:

int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);

有没有一种简单的方法来扭转这个过程并使用位移将 RGB 字节写回现有的 RGB 字节int

4

2 回答 2

8
int i = (B << 0) | (G << 8) | (R << 16);
于 2010-03-28T16:55:32.720 回答
4

您应该考虑Color 结构。它具有 R、G 和 B 属性以及 FromArgb() 和 ToArgb() 方法。

于 2010-03-28T16:56:41.297 回答