-1
int argb = img.getRGB(x, y);

int rgb[] = new int[] {
    ((argb >> 16) & 0xff),    //red
    (argb >> 8) & 0xff ,     //green
    (argb) & 0xff     //blue
};

this the array and i want to replace least significant bit of each element from zero???

4

3 に答える 3

1

... & 0xFE代わりに簡単ではない0xFFですか?

于 2012-12-31T06:37:57.253 に答える
0

このアプローチを試してください。

    int i = 33;
    System.out.printf("%d\n%32s\n", i, Integer.toBinaryString(i));

    i = (i >> 1) << 1;   // this does the job.

    System.out.printf("%d\n%32s\n", i, Integer.toBinaryString(i));

(私の以前の返信は実際には間違っていました)

于 2012-12-31T07:01:47.060 に答える
0

次のコードが役立つ場合があります。これを試して。
for(int i = 0; i <rgb.length; ++ i){rgb [i]&= 0xfffffffe; }

于 2012-12-31T06:38:43.603 に答える