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毎回新しいものを作成する必要のない、これを行うためのより高速な方法はありますか? からバイトを取得するのintは簡単です。

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

このプロセスを逆にして、ビットシフトを使用して 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 に答える