首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

荧幕取色工具ColorCat

2012-12-19 
屏幕取色工具ColorCatColorCat是俺写的一个小工具,主要是用于获取屏幕上任一显示点的颜色,小巧的屏幕取色

屏幕取色工具ColorCat

ColorCat是俺写的一个小工具,主要是用于获取屏幕上任一显示点的颜色,小巧的屏幕取色工具,能在屏幕上抓取任何你要的颜色,并转成RGB和十六进制颜色数值。
以前一直是用别人写的屏幕取色工具。不过某一天偶然看到jdk里面java.awt.Robot有个方法getPixelColor(x, y)可以获取屏幕某点坐标的颜色值,花了点时间做出了这个屏幕取色工具软件,并起了个名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

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

热点排行