java获得鼠标所在位置的图像的rgb值。 (转)

本文介绍了一个Java程序,用于获取鼠标在图像上所指位置的RGB颜色值。通过使用`BufferedImage`和`ColorModel`,程序能够在用户点击图像时报告该位置的颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java获得鼠标所在位置的图像的rgb值。 (转)[@more@]

 

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991351/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-991351/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值