我正在使用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
?
答案 0 :(得分:8)
int i = (B << 0) | (G << 8) | (R << 16);
答案 1 :(得分:4)
你应该考虑Color structure。它具有R,G和B属性以及FromArgb()和ToArgb()方法。