服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java获得鼠标所在位置的图像的rgb值


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

扫描关注微信公众号