一、简介
这是一个简单的辅助工具,用于生成屏幕文字或图像的单行字符串字库。配合强大的“查找文字()”函数,在脚本中非常好用!
在编写自动化脚本时,如果采用先抓图,再制作小图,再用ImageSearch,操作太复杂,且不能仅使用脚本,还要打包图片。
如果仅仅采用颜色判断,显而易见太简陋了,不能精确判断当前的屏幕文字(或图像),及精确定位。
所以这个工具就应运而生了,生成“0_”字符组成的形象化图像描述,并且自动生成“查找文字()”的调用代码,复制到自己的脚本中就行了。
这可是我的独门秘技哦(^_^)!
注意:如果你下载的是txt的文件,请修改后缀名为ahk运行;如果你无法运行,请检查或查新安装ahk。
二、应用场景
- 全屏查找图像文字,找到就点击。
- 全屏查找图像文字,找到就作为原点,点击基于原点的偏移位置。
- 全屏查找图像文字的所有位置,按次序全部点击处理。可以从各个方向,或者从中心螺旋查找。
- 定点小范围查找图像文字在该处是否出现。
- 制作字库,识别简单的验证码和数字。
- 制作字库,查找字库中的文字组合。
- 等待图像文字出现。
- 等待图像文字消失。
- 快速获取指定范围的二值化图像字符串,可用于其他地方的同文字查找。
- 通过比较指定范围的二值化图像字符串,等待屏幕改变。
- 快速截图并保存到bmp文件。
- 快速截图到缓存,然后多次找色。
- …
三、使用方法
用法: (需要最新版本 AHK v1.1.34+)
1. 将本脚本保存为“FindText.ahk”并复制到AHK执行程序的Lib子目录中(手动建立目录)
2. 抓图并生成调用FindText()的代码
2.1 方式一:直接点击“抓图”按钮
2.2 方式二:先设定截屏热键,使用热键截屏,再点击“截屏抓图”按钮
3. 测试一下调用的代码是否成功:直接点击“测试”按钮
4. 复制调用的代码到自己的脚本中
4.1 方式一:打勾“附加FindText()函数”的选框,然后点击“复制”按钮(不推荐)
4.2 方式二:取消“附加FindText()函数”的选框,然后点击“复制”按钮,
然后粘贴到自己的脚本中,然后在自己的脚本开头加上一行:
#Include <FindText> ; Lib目录中必须有FindText.ahk
5. 多色查找模式可以一定程度上适应图像的放大缩小,常用于游戏中找图
6. 这个库还可以用于快速截屏、获取颜色、写入颜色、编辑后另存图片
7. 如果要调用FindTextClass类中的函数,请用无参数的FindText()获取类实例对象
三、帮助
四、更新记录
更新至9.7版本-2024/06/18
1.修改:使用左右膨胀算法大大提高了轻微变形图像的查找成功率,推荐升级到这个新版本。
2.添加:使用 FindText().GetTextFromScreen() 快速生成Text到剪贴板。
感谢分享生产力工具!!!
谢谢楼主分享
飞佬,当时移交给你的时候,忘了把下载链接拿掉了,现在已经清除,特告知!
对于魔兽世界这种技能图标. 上面有一层阴影蒙着, 在转动的. 有什么好的办法?
魔兽世界的输出循环提示是用WA插件实现的 WA的图标没有你说的这种情况
魔兽论坛有各个职业的WA提示代码别人现成的你复制就行
然后用这个抓图工具 做成一件输出脚本 就是看到图标按哪个技能
AHK几十毫秒做一次反应比人快N倍 基本上能做到完美输出
特别是萨满的图腾舞猎人的猛禽舞骑士的圣印舞 全程只用按一个按键
不过上传WCL会被封号
办法1,先找附近的字和图片,再计算位移修正偏移量。
办法2,截屏抓图。
办法3,截屏抓图,抓取转动时不同的字和图片,同时找所有图片。
办法4,在微信或者QQ中问别人。
办法5,在百度,必应,西瓜视频,哔哩哔哩中搜索并且筛选遇到的问题。
学习了
没看懂这个工具有什么用呢、
这个厉害了
牛啊
感谢,超神工具
学习学习
这个不知道速度如何呢
推荐一个FindText 详细教程:https://www.autoahk.com/archives/41636
有v2版的就好了
有V2版的
#NoEnv #SingleInstance Force ; #Include aaa: t1:=A_TickCount, Text:=X:=Y:=”” Text.=”|*169$63.00001000000000042zy1Uz1k07zY0EQ0EF00GUS46E20802Y07lV0U100zy04N440E004bwY8N04DSzY+I1083006oVEk813E00VYGu10EPs008WEE800000N4Xy10U” Text:=”|*160$7.000000000000000000000000000000000000000000000000000Dvss8U” if (ok := FindText(X, Y,,,,,10,, Text)) { if (ok[1].id == “gean”) { ; 找到 “auto” 图像后要进行的操作 FindText().Click(X, Y, “L”) Sleep 500 } else if (ok[1].id == “xjt”) { ; 找到 “hot” 图像后要进行的操作 FindText().Click(X, Y, “L”) Sleep 500 goto aaa } }
上边这段代码有问题吗?怎么运行不了
膜拜大佬
真的厉害
感谢分享
怎么调用这个?
没有找到提取码
感谢大佬的分享,新来的多多向您学习
飞跃老师您好。
用 FindText().OCR 函数来实现一个基本的光学字符识别器 (OCR)
如有两种图案,怎么把这两种图案加入文本库?
另,OCR功能怎么实现,有没有详细的教程?
谢谢
您好。
用 FindText().OCR 函数来实现一个基本的光学字符识别器 (OCR)
如数字5有两种图案,怎么把这两种图案加入文本库?好象只能加入2个文本库,这样就实现不了用一个文本库来OCR。
另,OCR功能怎么实现,有没有详细的教程?
谢谢
这个效率太棒了
谢谢大神
; OCR 识别的例子,字库可以添加多种字体,多种抓取模式混合
Text:=””
Text.=”|**50$11.1s3kTlznXb3Q6kBUT0y1w3k7UD0y1g3MCsNlnzXy3k7UU”
Text.=”|*150$11.1s3kTlznXb3Q6kBUT0y1w3k7UD0y1g3MCsNlnzXy3k7UU”
Text.=”|*100$9.1kC7lyAl60k61kA1UA1UA1UA30M30MzzzzzzU”
Text.=”|**50$9.1kC7lyAl60k61kA1UA1UA1UA30M30MzzzzzzU”
Text.=”|**50$11.3s7kTlzn3a7060A0M1k30C0w1UD0w1k7US0s3TazDyE”
Text.=”|**50$11.3s7kTszF3U3060A0sNUy143s0s0k1U30CUR1nzby7sDkU”
Text.=”|**50$11.0C0Q1c6EDUT1g2MAktVX7CAQElVbzzzzbzi1k3U60A0MU”
Text.=”|**50$11.7yDwTszlU30C0M0z1z3y7y8Q0M0k1U30CUt1nzby7kDUU”
Text.=”|**50$11.1w3sTtznUb1Q0s1k7SCwTwrxsvlq1g3M6sxlnzXy3s7kU”
Text.=”|**50$11.zzzzzLyU70A0s1k30C0M1k3U60Q0s1U70A0s1k30C0E”
Text.=”|**50$11.1s3kTlznXa3A6MAslrVy7QTwkvVq1g3M6kBknzXz3s7kU”
Text.=”|**50$11.3s7kTlznXj7M6kBUPXr7jvDyDMSk1U30CEsVnzby7kDUU”
ok:=FindText(X,Y, 100, 100, 200, 200, 0.1, 0.1, Text)
验证码:=FindText().Ocr(ok).text
MsgBox % 验证码
怎么《和》尖括号显示不了,要用《code》…..《/code》标记吗?
一些代码
https://www.w3cschool.cn/article/10731289.html
最新版的 点击测试 报错哦
谢谢楼主分享
; 如果找到”我的云文档”字样表示已经登录成功,直接退出脚本
; 操作需要等待窗口或者控件的出现就用LOOP循环,IF判断和SLEEP等待
; 操作有先后顺序关系就用大括号嵌套各层操作
; 不同电脑,不同显卡,不同屏幕分辨率下显示的图片不同就在不同电脑上多抓几次图,同时并行查找搜索FindText多个图片
; 需要并行同时多个操作时请使用SetTimer语句,以指定的时间间隔自动并重复运行子程序.
; 需要并行同时多个操作时不要用LOOP循环,loop循环无法并行执行多个操作