PixelCatcher[屏幕图片取色]
本帖最后由 afan 于 2020-1-11 11:18 编辑最近做一个屏幕巡查方面的工具,本工具是其组件之一,觉得单独提出来使用也不错~
程序简介:
本程序是一款对屏幕图像或图片文件进行坐标及颜色采集的工具。
主要用于对屏幕像素点的编程辅助,如搜索、匹配等自动化应用。
程序特点:
针对像素点的坐标及颜色采集做了非常方便且人性化的功能设计,操作简单,功能丰富。
采集工作模式有屏幕、窗口、控件、图片等,几乎覆盖最常用的取色模式。
对目标区域进行像素放大展示,配合热键单像素微移光标,可轻松精准采集单个像素点。
对目标区域还有截屏功能,生成的图片既可直接采点,亦可作开发的资源文件。
使用说明:
程序采集工作模式包括以下几种:
1,屏幕坐标 - 即不区分窗口,整个屏幕都是采集的目标区域,所有坐标均基于屏幕左上角0,0点
2,窗口坐标 - 针对单个窗口进行采集,所有坐标均基于该窗口左上角0,0点
3,客户坐标 - 针对窗口的客户区坐标进行采集,可以排除系统主题差异造成的标题栏边框不等的影响
4,控件坐标 - 应用效率最高的目标区域,因为控件区域相对最小,坐标的影响也最小
5,图片坐标 - 直接打开截屏或浏览选择的图片进行采集,对于某些易变的场景先截屏是个简单实用的方式
运行程序即已选择“控件坐标”模式,如上所说,应该是最常用的。推荐的优先级为从4至1,从高到低
*除“屏幕坐标”和“指定图片坐标”外,其它模式均需拖动左上角的靶标到目标,以确定目标范围
(*注:1.0及以上版本由于新增并改变了默认方式,所有模式均需先拖动靶标到目标)
十字放大显示区激活后便可进行采集,方法如下:
首先移动鼠标到目标的大致范围,若需采集,按下 Ctrl+0 即可生成一行包括XY坐标及色值的色卡
如需精准定位,可按下 Ctrl+上下左右方向键,即可按1像素的步进值移动,确认再后 Ctrl+0 即可
另注:1.0及以上版本新增了在本程序界面直接操作鼠标,按住左键拖移定位、右键采点功能
该功能可更方便直接使用鼠标而非热键操作的用户,且鼠标不用受限制的停留在采点区域
已将该方式设置为默认方式,如仍需使用原方式可使用热键“Ctrl+]”切换
生成的色卡可直接点击文本复制使用,点击色块可鼠标定位,以验证准确性
程序最多保存10个色卡,可使用扫把工具按钮清空
1.0及以上版本还可导出采集的信息文本
其它未说明处可悬停各处查阅
更新历史:
200110 1.4 (限时分享结束)
[修正]对窗口及控件截图缺失右侧及底边一像素的问题
[修正]点击即时坐标信息无法弹出手动指定坐标对话框的问题
[修改]复制靶标区标题的高级模式增加包含窗口标题文本
191229 1.3 (未发布)
[修正]点击无信息的色卡方块时会切换模式的问题
[新增]点击采集的色卡数据文本,可弹出含以下功能的菜单
复制该色卡
复制所有色卡(多个以|分隔连接)
删除该色卡
清除所有色卡
[修正]即时信息色块在光标位于放大区停留可能会轻微闪烁的问题
[修正]图片模式在满屏显示时可能会遮住主窗口的问题,点击一下图片即可
191214 1.2 (限时分享结束)
[新增]点击放大窗下方的即时坐标信息可直接输入坐标进行定位查询
输入后执行可立即光标定位、放大显示及色值信息,相当于采点的逆操作
该功能对于核查代码中的坐标色值相关数据十分方便
[新增]静态自采功能
启动/停止该功能热键“Ctrl+[”,启动后即时信息色块会显示一个“○”,若光标3秒内未移动即开始
显示变为从3-0的倒计时数字,为零时则自动采集当前位置点,若中途移动了鼠标则回归为“○”
若自采后光标仍未移动且颜色也未变化则不重复采集,如此循环,直到再次按下相同的热键
该功能工作时会切换到十字线自由模式,且禁止切换到默认的界面拖移模式,因无意义。
[修改]拖动靶标或放大显示区域为本程序窗口时忽略处理
[修改]界面微调,如启动时界面带Logo图片
191213 1.1 (未发布)
[修正]默认方式按住靶标定位时即时信息坐标正常而色值未更新的问题
[新增]采集目标使用增强模式,以应对某些带有透明度分层样式无法采集到可见层的问题(如迅雷的浮窗)
这种方式应该是所见即所得的,但需注意,Au3里的Pixel*内置函数均不会操作该层面窗口
因此,如果你采集的点需要直接用Pixel*内置函数去操作肯定是行不通的,特此提醒
也为了提醒,在放大显示下方的即时信息最右侧会有个警示,如与Pixel*识别的不同时即会显现
点击即时信息颜色方块可切换到普通模式,可作比对
[修改]在放大显示窗拖移目标区,原以简单的Tooltip浮动方块显示目标位置,现改为包围目标区域的线框
该线框设为不常用且显眼的紫红色,在移动时会同时在放大窗其移动的轨迹,可简单做到单像素移动
[修正]图片模式窗口可能会被处于底层而不好操作的问题
191207 1.0 (已分享)
[新增]导出采集信息功能
[修改]点击采集的色块查看定位时,若点击时按住鼠标左键不放则等同按住CTRL键点击,可在松开时返回原处
[新增]直接在本程序放大显示界面操作鼠标,按住左键拖移定位、右键采点功能
该功能可更方便直接使用鼠标而非热键操作的用户,且鼠标不用受限制的停留在采点区域
包括“屏幕坐标、图片坐标”在内的所有坐标模式均需首先使用靶标定位
已将该方式设置为默认方式,如仍需使用原方式可使用热键“Ctrl+]”切换
推荐的方式为:
若采点的范围较小(宽高均在几百像素以内),建议直接使用默认方式;
若范围较大则切换到原屏幕鼠标点方式,毕竟该方式可秒移到任何位置采点,而无需在程序界面拖移
[修改]几处界面微调及用词调整
191206 发布 0.8.5
[修正]一处坐标显示问题
191204 初发布0.8
0.8.5下载
**** Hidden Message ***** 赞!经常为取色烦恼,这就可帮助解决了 a版又有新作了! 厉害,想了解区域放大是如何实现的。 a大作品就是牛掰,来学习一下。 nmgwddj 发表于 2019-12-6 14:11
厉害,想了解区域放大是如何实现的。
截图指定大小的区域,然后放在更大尺寸的image控件上? 放大简单,使用 _WinAPI_BitBlt() 直接复制源矩形到目标矩形,目标矩形大于源矩形就放大了。当年玩马赛克就有讨论 昨晚又设计了一种思路,直接在程序窗口用鼠标操作采集源区域(就像远程一样),点击大方块的像素点即可采集,可更方便懒得用热键操作的
厉害:face (1): 先手机回复霸位,可惜电脑不在身边!!!回家后再感叹号!!! 赞一个.早期之前@tryhi好像也写了个类似的
绿色风 发表于 2019-12-8 19:25
赞一个.早期之前@tryhi好像也写了个类似的
肯定有类似的 呵呵~我也是最近有此需要才写的 习惯自给自足了 :face (33): afan 发表于 2019-12-8 19:31
肯定有类似的 呵呵~我也是最近有此需要才写的 习惯自给自足了
自给自足的东西才熟悉:face (15): 绿色风 发表于 2019-12-8 19:46
自给自足的东西才熟悉
就是这个理代码总是写一次就更熟悉一点~ :face (12): 这个赶紧收下,一会没了