`
企鹅木白
  • 浏览: 32820 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

取色笔的实现

阅读更多
所需要用到的类:
Robot
Rectangle
BufferedImage
Java。awt。Robot类用于控制鼠标和键盘,它提供了很多方法来进行鼠标和键盘的操作, 这里我们用他来截取一块屏幕,这个方法是createScreenCapture(Rectangle R),我们看到这个方法需要的参数要用到Rectangle类。

Java。awt。Rectangle它指定了做表空间的一个区域,通过Rectangle 对象的左上顶点的坐标(x,y)、宽度和高度可以定义这个区域。 我们这里用到他的构造函数Rectangle(int x,int y,int width, int height)。 在屏幕中我们添加鼠标事件获取当前取色笔点击的屏幕,当然我们取色是区一个点,所以我们屏幕大小可设为一,然后我们要做的就是把这块屏幕传给BufferedImageot。

    java.awt.BufferedImage它是一个可以访问图形数据缓冲区的Image,它的对象是附图片,然后把图片的各个像素存在一个数组中,我们这里把Rectangle对象传过去,也就是一个点,然后我们将用到BufferedImage的一个方法;getRGB(int x,inty),在API中写道:
参数:
x, y - 像素的坐标,从该坐标得到默认 RGB 颜色模型和 sRGB 颜色空间中的像素。
所以我一开始把里面的参数看成了是传过来屏幕的某个坐标,其实这里的参数表达的是像素数组的下标。
getRGB它的返回值是一个int型的数据,所以我想用这个返回值来获取Color的3个RGB值,结果很不理想。它是读取ARGB像素值,并存储到rgbData数组中,rgbData中的数据是以0xAARRGGBB格式存储的,代表每个像素的颜色属性和透明属性。所以我一直没弄懂,然后当我知道   Color可以直接把这个int型的数传过去时,着实蛋疼了一把。

代码:
public void getRGB(int x,int y) throws AWTException
{
rb=new Robot();     //测试自动化
Dimension d= new Dimension(800,800);
Rectangle rec=new Rectangle(x,y,1,1); //一片大小的矩形区域
BufferedImage bi= rb.createScreenCapture(rec);
int pixelColor = bi.getRGB(0,0);
     jpanel_color.JBcolor=new Color(pixelColor);
     jpanel_color.color_show.setBackground(jpanel_color.JBcolor);
}

分享到:
评论

相关推荐

    超好用的Web前端工程师吸色器

    今天给大家分享一个超级好用的吸色器,只需要按住快捷键: Alt+X,即可实现颜色的吸取。

    拾色器源代码

    该代码主要讲解了如何实现了拾色器,又加入了取色时的颜色提示,接近完美!

    用c#编写画图程序,一般功能都有实现

    我用的是c#2008编写的程序,里面包含的功能有橡皮擦,取色,铅笔,直线,矩形,椭圆,圆角矩形功能。

    设计模式课程设计---使用6个不同的设计模式完成绘图系统(java)

    该系统通过图用户界面实现一个简单的绘图功能,工具栏包括铅笔,画刷,取色器,喷枪,橡皮,直线,多边形,矩形,椭圆,圆角矩形,打字等工具,可以通过颜色面板进行画笔颜色选择,提供撤销和重做操作,实现图片保存...

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    该系统为绘图系统,该系统通过图用户界面实现一个简单的绘图功能,工具栏包括铅笔,画刷,取色器,喷枪,橡皮,直线,多边形,矩形,椭圆,圆角矩形,打字等工具,可以通过颜色面板进行画笔颜色选择,提供撤销和重做...

    配置好的傻瓜化小狼毫全拼+多种双拼+五笔86-98+笔画输入法v200312 - 17种方案

    需要本套五笔词库的支持,换其他词库则不保证实现。 所有输入法状态下,输入半角 / 号作为引导符,后面跟上符号类型的拼音缩写,即可输入。比如:/sb 可输出上标符号、/lm 可输出罗马数字,等等。 /fh 符号 /dn ...

    Jamscreenshot:一个用python实现的类似微信QQ截屏的工具原始码,整合提取自本人自制工具集Jamtools

    如果您还需要滚动截屏功能,可以看看---- 20210206更新------新增了透视裁剪工具(并附PS里的用法),上方截图工具,取色器工具,油漆桶工具,背景还原画笔(配合背景橡皮擦使用),支持回退10步操作历史记录,添加...

    C# 简易画板代码

    能实现新建、保存、取色、设置画笔大小,还能画出不同图形

    第03个小程序:渐变画笔

    渐变画刷的实现 using System; using System.Windows; using System.Windows.Input; using System.Windows.Media; namespace Chapter02 { public class GradiateTheBrush : Window { [STAThread] ...

    Windows下附件中的画图软件

    绘制方面的功能主要包括绘制各种图元,包括直线、Bezier曲线、矩形、圆角矩形、椭圆(圆)、多边形,用笔或画刷自由绘图,橡皮擦擦除,颜料桶填充,取色和区域选取移动。绘图时可以选择各种画笔颜色和画刷颜色,各种...

    六种设计模式结合的Java绘图板

    绘图板实现铅笔、画刷、取色器、喷枪、橡皮、直线、多边形、矩形、椭圆、圆角矩形、 打字的功能,实现了颜色选择,实现了撤销和重做,实现了图片保存、读取等功能。 2. 设计模式: 工厂模式、备忘录模式、单例模式...

    C# 高仿 Windows 画图板

    C# 高仿 Windows 画图板,实现图片的打开/保存/文字绘制/矩形/圆形/椭圆形/圆角矩形/画刷/画笔/喷枪/曲线/取色等功能。

    C# Winform画图板

    C# 高仿 Windows 画图板,实现图片的打开/保存/文字绘制/矩形/圆形/椭圆形/圆角矩形/画刷/画笔/喷枪/曲线/取色等功能。

    1345个易语言模块

    取 腾讯TT浏览器的地址栏文本模块.ec 取节气模块.ec 取试用数据.ec 取非系统进程全路径文件名.ec 变身_超级编辑 框.ec 变速模块(1.0).EC 古木_选择文件夹.ec 古木滑块条_免注册版.ec 句柄操作.ec 各类已打开 的...

    图形学上机试验VC画板

    2.更改squaring函数,根据windows自带画板是取长和宽中较小的值。 3.修改程序图标(原来用自己的图标放进去老是有问题,最后发现原来是VISTA的权限问题,放到XP下编译就OK了) 用这个搜索就可以找到修改的地方 : ...

    Draw.rar_android开发_Others_

    这个代码的功能是android取色板实现取色并能改变画笔粗细

    易语言 茶凉专用模块

    子程序 到短路径, 文本型, 公开, 取指定路径的短路径名(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:C:\PROGRA~1\ .参数 文件名, 文本型, , 原路径 .子程序 到任意进制, 文本型, 公开, 可以将...

    易语言540个易模块

    数据源按钮 数据摘要模块(MD5算法实现) 飞扬工作室 数值与十六进制文本的相互转换 数制转换(修该) 双功能自动编号模块 缩放多文档支持库 所有模块 锁键盘数标 T TCP服务器 TWnet.CN 弹出网页广告 弹出下载...

Global site tag (gtag.js) - Google Analytics