0

ねえ、JAVA (sobel オペレーター) で画像を扱っていますが、コード行の意味がわかりません。

int p = img.getRGB(x,y);
int a = (p>>24)&0xff;
int r = (p>>16)&0xff;
int g = (p>>8)&0xff;
int b = p&0xff;
p = (a<<24) | (avg<<16) | (avg<<8) |avg;

それでは、誰かがこれらの行の意味を説明できますか?

(p>>24)&0xff
p = (a<<24) | (avg<<16) | (avg<<8) |avg;
4

1 に答える 1

0

これらはビット単位の操作です。p>>24 は、p int の最初のバイトを右に 24 桁シフトし、&0xff はビットごとに、シフトされた数値と 16 進数の ff (10 進数 255) を使用して実行します。avg << 16 は、avg int の最初のバイトを左に 16 桁シフトします。そして | ビット単位または他の値で実行します。これらはいわゆるビットマスクです。詳細については、ビット演算とビットマスクという用語を検索してください。私が助けてくれることを願っています:)

于 2016-04-02T12:15:37.770 に答える