将int颜色转换为int组件

Kam*_*mil 8 java colors

我通过获得像素颜色

int color = image.getRGB(x,y);
Run Code Online (Sandbox Code Playgroud)

然后我想分别获得红色,绿色,蓝色组件.怎么做?也许使用一些位掩码?

int green = color&0x00ff00;
Run Code Online (Sandbox Code Playgroud)

显然不工作...... :(

Ale*_*nko 31

要获得颜色组件,您可以使用:

import android.graphics.Color;

        int r = Color.red(intColor);
        int g = Color.green(intColor);
        int b = Color.blue(intColor);
        int a = Color.alpha(intColor);
Run Code Online (Sandbox Code Playgroud)


zez*_*000 6

int value = image.getRGB(x,y);
R = (byte)(value & 0x000000FF);
G = (byte)((value & 0x0000FF00) >> 8);
B = (byte)((value & 0x00FF0000) >> 16);
A = (byte)((value & 0xFF000000) >> 24);
Run Code Online (Sandbox Code Playgroud)

可能需要翻转R,A或B.


cod*_*nix 3

您忘记将字节向右移动:

int green = (color & 0x00ff00) >> 8;
Run Code Online (Sandbox Code Playgroud)