import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class getrectpixel {
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{
bufferedimage bi ;//创建缓冲区图像
image image;
mediatracker mt ;//创建媒体跟踪器
int imagewidth; //图像宽度
int imageheight;//图像高度
public imageholder() {
mt =new mediatracker(this);
try{
image = toolkit.getdefaulttoolkit().createimage("gigi3.jpg");
mt.addimage(image,0);
mt.waitforall();//等待直到所有的图像都以完成装填
imagewidth = image.getwidth(this);//获得单前图像的宽度
imageheight = image.getheight(this);//获得当前图像的长度
}
catch(exception e){}
bi = new bufferedimage(imagewidth,imageheight,bufferedimage.type_int_rgb);
addmouselistener(new mouseadapter(){
public void mouseclicked(mouseevent me){
//获得鼠标当前位置的横,纵坐标
int mousex = (int)me.getpoint().getx();
int mousey =(int) me.getpoint().gety();
//获得该处的rgb值
getpixel(mousex,mousey);
}
});
setsize(imagewidth,imageheight);
}
public void paint(graphics g){
int xcenter = (getsize().width / 2) - (imagewidth / 2);
int ycenter = (getsize().height / 2) - (imageheight / 2);
g.drawimage(image, xcenter, ycenter, imagewidth, imageheight, this);
}
public void getpixel(int x,int y){
//获得imageholder的色彩模型
colormodel cm = this.getcolormodel();
//把象素形式的色彩组件(imageholder)以rgb的形式返回。
int rgb = cm.getrgb(x*y);
//分别获得其r,g,b值。
int red = (rgb>>16)&0xff ;
int green = (rgb>>8)&0xff ;
int blue = (rgb)&0xff ;
system.out.println( "("+red+","+green+ ","+blue+ ")");
}
}
闽公网安备 35060202000074号