站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题java获得鼠标所在位置的图像的rgb值

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

摘要: 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+ ")"); } }
↑返回目录
前一篇: Java基础知识资料整理
后一篇: Java环境设置及中文问题祥解