为什么80%的码农都做不了架构师?>>>   屏幕取色工具ColorCat-编程知识网

ColorCat是俺写的一个小工具,主要是用于获取屏幕上任一显示点的颜色,小巧的屏幕取色工具,能在屏幕上抓取任何你要的颜色,并转成RGB和十六进制颜色数值。
以前一直是用别人写的屏幕取色工具。不过某一天偶然看到jdk里面java.awt.Robot有个方法getPixelColor(x, y)可以获取屏幕某点坐标的颜色值,当时立即想到把它和之前写的鼠标钩子 http://www.blogjava.net/pengo/archive/2010/12/17/340938.html结合,花了点时间做出了这个屏幕取色工具软件,并起了个名ColorCat。
代码的实现很简单,只需把鼠标钩子的实现http://www.blogjava.net/pengo/archive/2010/12/17/340938.html这篇文章的callback方法修改一下就行了,修改部分代码如下,具体的源码,需要的可以自己下载文章结尾的附件。
public  LRESULT callback( int  nCode, WPARAM wParam,
                        MOUSEHOOKSTRUCT info) {
                    
if  (nCode  >=   0 ) {
                        
int  x  =  info.pt.x;
                        
int  y  =  info.pt.y;
                        textField_X.setText(String.valueOf(x));
                        textField_Y.setText(String.valueOf(y));
                        Color color 
=  robot.getPixelColor(x, y);
                        
switch  (wParam.intValue()) {
                        
case  MainWindow.WM_MOUSEMOVE:
                            cruColor.setBackground(color);
                            
break ;
                        
case  MainWindow.WM_LBUTTONDOWN:
                            
if  (isColor) {
                                textField_Red.setText(String.valueOf(color
                                        .getRed()));
                                textField_Green.setText(String.valueOf(color
                                        .getGreen()));
                                textField_Blue.setText(String.valueOf(color
                                        .getBlue()));
                                selectColor.setBackground(color);
                                String red 
=  MainWindow.decimalToHex(color
                                        .getRed());
                                String green 
=  MainWindow.decimalToHex(color
                                        .getGreen());
                                String blue 
=  MainWindow.decimalToHex(color
                                        .getBlue());
                                textField_Html
                                        .setText(
" # "   +  red  +  green  +  blue);

                            }
                             break ;
                        
case  MainWindow.WM_MBUTTONDOWN:
                            
break ;
                        
case  MainWindow.WM_MBUTTONUP:
                            
break ;
                        }
                    }
                    
return  lib.CallNextHookEx(hhk, nCode, wParam,
                            info.getPointer());
                }

window下运行效果:
屏幕取色工具ColorCat-编程知识网

目前只实现了最简单的取色功能,等有时间,把调色板和颜色值转换的功能也加上,让这工具在以后的开发中更实用。如果其他人有好的功能建议,也可告诉我修改^_^。

运行程序: ColorCat.jar (需要jre6)
源码: ColorCat.src。 屏幕取色工具ColorCat-编程知识网

pengo 2011-01-16 17:38 发表评论

转载于:https://my.oschina.net/penngo/blog/12361