2010-12-05 56 views
5

我通过转换INT颜色为int成分

int color = image.getRGB(x,y); 

然后我想单独购买的红,绿,蓝成分获得像素的颜色。怎么做?也许使用一些位掩码?

int green = color&0x00ff00; 

显然不工作... :(

回答

3

你忘了字节右移:

int green = (color & 0x00ff00) >> 8; 
+0

并确保将两个字节右移红色! – ClosureCowboy 2010-12-05 19:10:58

+0

还有一件事。 0x00ff是否等于0x00ff00? – Kamil 2010-12-05 19:13:30

26

为了让你可以使用颜色分量:

import android.graphics.Color; 

     int r = Color.red(intColor); 
     int g = Color.green(intColor); 
     int b = Color.blue(intColor); 
     int a = Color.alpha(intColor); 
4
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。