我通过
获得像素颜色int color = image.getRGB(x,y);
然后我想分别获得红色,绿色,蓝色组件。怎么做?也许使用一些位掩码?
int green = color&0x00ff00;
显然不起作用...... :(
答案 0 :(得分:30)
要获取颜色组件,您可以使用:
import android.graphics.Color;
int r = Color.red(intColor);
int g = Color.green(intColor);
int b = Color.blue(intColor);
int a = Color.alpha(intColor);
答案 1 :(得分: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);
可能需要翻转R,A或B.
答案 2 :(得分:3)
您忘记将字节向右移动:
int green = (color & 0x00ff00) >> 8;
答案 3 :(得分:2)
您可以使用Color
constructor并传递给定的整数和hasalpha=true
:
Color color = new Color(image.getRGB(x,y), true);
getRGB会返回TYPE_INT_ARGB类型的颜色,这意味着它有一个Alpha通道。