我在用着 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()方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top