博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎样获得当前mouse坐标处的颜色??[
阅读量:4172 次
发布时间:2019-05-26

本文共 3193 字,大约阅读时间需要 10 分钟。

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class GetPixel {
public PixelMadness() {
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 {
ImageIcon icon = new ImageIcon( "zx2.jpg ");
Image image = icon.getImage();
int imageWidth = image.getWidth(this);
int imageHeight = image.getHeight(this);
int[] pixelArray = new int[imageWidth * imageHeight];
PixelGrabber grabber = new PixelGrabber(image,0,0,imageWidth,imageHeight,pixelArray,0,imageWidth);
public ImageHolder() {
try { grabber.grabPixels(); }
catch(InterruptedException ie){
System.out.println( "Pixel array not completed ");
return;
}
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
int mouseX = (int)me.getPoint().getX();
int mouseY =(int) me.getPoint().getY();
int pixel = pixelArray[(mouseY * imageWidth) + mouseX];
getPixel(pixel);
}
});
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 pixel){
int alpha = (pixel > > 24)&0xff;
int red = (pixel > > 16)&0xff;
int green = (pixel > > 8)&0xff;
int blue = (pixel)&0xff;
System.out.println( "( "+alpha+ ", "+red+ ", "+green+ ", "+blue+ ") ");
}
}
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();
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){
ColorModel cm = this.getColorModel();
int rgb = cm.getRGB(x*y);
int red = (rgb> > 24)&0xff ;
int green = (rgb> > 16)&0xff ;
int blue = (rgb> > 8)&0xff ;
System.out.println( "( "+red+ ", "+green+ ", "+blue+ ") ");
}
}

转载地址:http://jrbai.baihongyu.com/

你可能感兴趣的文章
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>
内核线程创建
查看>>