当前位置:  技术问答>java相关

如何取得一个像素点的颜色?

    来源: 互联网  发布时间:2015-01-05

    本文导语:  我想返回鼠标点击的点的颜色,怎么办? | //希望这个程序对你有用 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*;  public class GetPixel { public PixelMadness() {  ImageHol...

我想返回鼠标点击的点的颜色,怎么办?

|
//希望这个程序对你有用
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+ ")");
 }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 脚本取得动态输出
  • 请问哪个函数可以取得微妙(或毫秒)的时间值?
  • 如何取得程序运行时的当前目录?
  • 请问?如何取得系统时间?
  • 如何取得cpu使用率!
  • 在Linux中,IP怎样取得?
  • 如何取得系统运行性能?
  • 请问在solaris下可以取得一个线程的ID号吗?
  • stat取得文件信息的问题
  • 请问linux系统下,用什么函数可以取得hostname和username?
  • 用shell如何取得"5555:Thu Oct 30 09:37:17"中第一个冒号前面的值?
  • 怎样取得sk_buff中的data
  • 请教在Servlet中如何取得JSP中提交的radio对象和checkbox的值?
  • 如何取得进程执行时间?
  • 你能告诉我如何取得到Request里的名称和值,以及数据库里名称和数据类型?
  • 在Java中如何取得一个字符的ASCII码值?
  • 请问用什么方法取得表中的记录数?是getRowCount么?
  • 请教各位高手一个简单的问题:在JAVA 中如何才能取得一些系统信息?
  • 在JSP中怎样取得两个日期的相隔天数??
  • UNIX/LINUX下如何取得精确到“毫秒级”的系统时间?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3