public void getPixel(int x,int y){
ColorModel cm = this.getColorModel();
int rgb = cm.getRGB(x*y);
int red = (rgb>>24)&0xff ;
int green = (rgb>>16)&0xff ;
int blue = (rgb>>8)&0xff ;
System.out.println( "("+red+","+green+ ","+blue+ ")");
}
}
public GetRectPixel() {
ImageHolder holder = new ImageHolder();
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.add(holder);
frame.getContentPane().add(panel);
frame.setSize(400,400);
frame.setVisible(true);
}
public static void main(String[] args) {
GetPixel getpixel = new GetPixel();
}
}
class ImageHolder extends Canvas{
int rectWidth = 80;
int rectHeight = 80;
BufferedImage bi ;
public ImageHolder() {
bi = new BufferedImage(400,400,BufferedImage.TYPE_INT_RGB);
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
int mouseX = (int)me.getPoint().getX();
int mouseY =(int) me.getPoint().getY();
getPixel(mouseX,mouseY);
}
});
setSize(100,100);
}
public void paint(Graphics g){
g.drawRect(50, 50,rectWidth,rectHeight);
g.setColor(Color.red);
g.fillRect(50, 50,rectWidth,rectHeight);
}
public void getPixel(int x,int y){
int rgb = bi.getRGB(x,y);
int red = (rgb>>24)&0xff;
int green = (rgb>>16)&0xff;
int blue = (rgb>>8)&0xff;
System.out.println( "("+red+","+green+ ","+blue+ ")");
}
}
用BufferedImage就可以了,如:
import java.awt.color.*;
....
BufferedImage bi = new BufferedImage(400,300,ColorSpace.TYPE_RGB);
//画图
Graphics g = bi.getGraphics();
g.drawString(...);
//取得象素
Color color = new Color(bi.getRGB(int x, int y));
再作判断就好了,你试试。
public void getPixel(int pixel){
int alpha = (pixel >> 24)&0xff;
int red = (pixel >> 16)&0xff;
int green = (pixel >> 8)&0xff;
int blue = (pixel)&0xff;
System.out.println( "("+alpha+","+red+","+green+ ","+blue+ ")");
}
}