轉 java中獲取圖片的像素顏色


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]+")");


}

}


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章