public int getPixel(int x,int y) throws AWTException{ //函數傳回值為顏色的RGB值。
Robot rb = null; //java.awt.image包中的類,可以用來抓取螢幕,即截屏。
rb = new Robot();
Toolkit tk = Toolkit.getDefaultToolkit(); //擷取預設工具包
Dimension di = tk.getScreenSize(); //螢幕尺寸規格
Rectangle rec = new Rectangle(0,0,di.width,di.height);
BufferedImage bi = rb.createScreenCapture(rec);
int pixelColor = bi.getRGB(x, y);
return 16777216+pixelColor; //pixelColor的值為負,經過實踐得出:加上顏色最大值就是實際顏色值。
}
另一種
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;
public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];
File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}
int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");
for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");
}
}
}
}