按键精灵找图点击设置方法
- 格式:doc
- 大小:1.00 MB
- 文档页数:9
经常在论坛里看到有人发按键精灵找图求助的帖子,所以特意写了此篇文章(可能算不上文章)。
虽然我以前有抓图的经验,但为了写篇像样的文章,特意做了不少实验。
首先要强调的是设置找图参数问题(不是刚学抓图的人,这点可以不用看)。
下面是找图的语句VBSCall Call FindPic(left,top,right,bottom,filename,similar,x,y)left处填写找图区域的左边界,top处填写找图区域的上边界,right处填写找图区域的右边界,bottom处填写找图区域的下边界。
设置的找图区域不要出屏幕范围,否则可能会出错(我也不太确定^_^)。
如果屏幕分辨率是1024×768,那屏幕范围是0,0,1023,767;如果如果屏幕分辨率是800×600,那屏幕范围是0,0,799,599。
因为屏幕坐标是从0开始算的,不是从1开始算的,所以右边界和下边界的值要减1。
曾经看到有人找图范围设置成0,0,800,600,就超出了屏幕范围。
filename处填图片文件名的路径,也可以只填文件名,这时墨认图片文件的路径是在script文件夹下,图片文件要是BMP格式的,JPG格式估计不行(没试过^_^),失真大。
similar处填图片的相似度,取值在0.5到1之间(我曾经试过取2,测试结果忘了-_-! 别砸我),取的值越大,相似度越高,找图的速度也越快(这是别人说的)。
虽然按键精灵的作者推荐取0.9,但只要图不是透明的,背景设置正确(这是这篇文章的重点),设成1都能找到(再同一台电脑上肯定没问题,换台电脑就不知道了)。
x处填保存找到的图片的横坐标的变量,y处填保存找到的图片的纵坐标的变量。
这程序返回的是找到的图片的左上角的坐标。
当程序找不到符合的图片时,这2个变量都被置-1。
这里要注意,如果脚本中用鼠标的位置来指示找到的图片,如果没有考虑到找不到符号图片的问题,当找不到符合的图片时,虽然鼠标不能移到坐标(-1,-1)处,但鼠标会移到屏幕左上角,也就是坐标(0,0)处。
函数说明:1.TransformWindow(窗口句柄)功能:转换窗口,对要取后台图色数据的窗口使用该函数后才能取后台图色数据。
如果是DX图形绘图的窗口,DX绘图区域必须有部分移到屏幕外,否则无法使用。
转换窗口后,有些窗口(特别是大多数游戏的)要等待一会儿才能用其它函数可靠地取到后台图色数据,等待的时间要大于画面两次刷新的时间间隔。
转换后到取消转换前,可以无限次使用取到后台图色数据的命令,即通常只需要转换一次。
参数:1)窗口句柄:整型数。
2.UnTransformWindow(窗口句柄)功能:取消窗口转换,DX图形绘图的窗口,用过TransformWindow后,必须用UnTransformWindow取消窗口转换才能让DX绘图完全移到屏幕中,否则后很严重(不会损坏电脑的),自己试下就知道了。
参数:1)窗口句柄:整型数。
3.GetPixelColor(窗口句柄,横坐标,纵坐标)[颜色值]功能:获得指定点的颜色参数:1)窗口句柄:整型数。
2)横坐标:整型数,窗口客户区坐标。
3)纵坐标:整型数,窗口客户区坐标。
返回值:颜色值:整型数。
例子:Plugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-30,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin color=BGCP2_02.GetPixelColor(hwnd,0,0)MsgBox CStr(Hex(color)),4096,"颜色"Plugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)4.CmpColor(窗口句柄,横坐标,纵坐标,颜色,颜色最大偏差)[是否满足条件]功能:判断指定点的颜色,后台的IfColor参数:1)窗口句柄:整型数。
制作游戏辅助必学图片找图、图片二期处理来源:按键学院【按键精灵】图片找图?啥是图片找图呢?之前小编在论坛上看到有童鞋纠结这么一个问题:获取游戏里一个物品的截图,然后想和在电脑存放的一张没有打开的图片做匹配,如果截取的物品截图可以在电脑存放的图片里找到,就继续操作下一步。
哇塞~ 一听这个想法,我和我的小伙伴都惊呆了。
好高端的样子,图片里找图,而且还是没打开的图片!小编惊呆之后又继续逛论坛,锵锵锵~就是那么巧,小编找到了图片找图的方法~图片找图使用【一只鱼】●图灵v1.1插件,只需要几行代码就能轻松解决图片找图的问题。
使用前准备1、下载一只鱼插件,解压到任意路径2、将解压后文件夹里的 FISH.dll 和 FISH.html 两个文件剪切到按键精灵安装目录下的plugin文件夹里。
3、打开按键精灵(如果复制文件到plugin文件夹里时按键精灵是开启状态,请关闭之后再开启)需要用到的插件命令命令名称:FindPicture 区域找图命令功能:区域找单张图片或者多张图片命令参数:参数1:变体型,BMP图片路径参数2:字符串型,查找方向参数3:浮点型,颜色相似度参数4:变体型,查找区域范围参数5:整数型,返回查找结果类型返回值:整数型,路径BMP图片的坐标代码Call Plugin.FISH.Bind("G:\1.BMP")//绑定路径图片Dim xy, x, y, ixy = Plugin.FISH.FindPicture("G:\2.BMP", 0, 1.0, "FULL", 0)//或者xy = Plugin.FISH.FindPicture("G:\2.BMP", "从左上到右下", 1.0, "FULL", 0)For i = 0 To UBound(xy)x = xy(i, 0)y = xy(i, 1)TracePrint x & "," & yNext代码分析:1、 Call Plugin.FISH.Bind("G:\1.BMP") 绑定主图片(小编截取了电脑整个屏幕作为主图,保存在G盘命名为1.bmp)2、xy = Plugin.FISH.FindPicture("G:\2.BMP", 0, 1.0, "FULL", 0) 需要找的图(小编接取的是电脑屏幕上我的电脑图标),找到之后将坐标返回给变量xy注意:图片的格式要为BMP一只鱼插件除了支持图片找图之外,它还支持图片二期处理和无字库找字,我们一起来看看~~图片二期处理例如,我们要在图片上画圈圈,画框框等等,就属于图片的二期处理,我们看一个例子,看看一只鱼插件是如何实现图片的二期处理的。
1、首先明确编写脚本的目的,本例子中主要是完成以下的目标:找到图片,并用鼠标左击一次新建一个脚本,点击上方的【抓抓】
2、在图像下,使【抓抓】在截取窗口的前面,然后点击【截屏】
3、框选出要截取的图片,选择【位图另存为】
4、命名图片,然后保存
5、关闭【抓抓】,点击【附件】
6、点击【添加】,将刚才保存的图片插入脚本中
7、回到脚本,点击【颜色/图形命令】
8、在第一个下拉菜单中选择【区域找图】
9、然后选择找图的区域,如果需要在整个屏幕找图,需要将上面的数值设为电脑的分辨率,如果只需要在一个区域内找图,可以用【抓抓】确定区域坐标
10、然后将红框内的文件名改为图片的名称,可以调整图片的相似度,如果图片在所找的区域内没有相似的图片,就可以调得低一些,反之就调得高一些
11、注意要勾选【使用附件图片路径】,然后点击插入
12、现在就只需要添加鼠标点击的命令了,在【则】后面添加语句,也是图中箭头指示的位置
按键精灵使用图文教程按键精灵脚本
13、点击鼠标命令下的移动命令,不需要管当前的坐标值
14、在【源文件】窗口下,将具体的数值替换成【intX+20,intY+20】因为脚本找到图后,会将图片所在的左上角的坐标位置赋值给X,Y两个变量,
如果直接输入【intX,intY】鼠标点击的时候就会点击图片的左上角,就有可能点不到图片,所以要X,Y设置一个偏移量,这个偏移量是根据图片大小来设置的,
如果图片面积小,偏移量大,也是点击不到图片的,所以设置完成后,需要测试一下
15、然后设置一个延时时间,自己掌握长短
16、接着在输入一个鼠标单击的命令即可
17、按键精灵如何找图这个脚本就编写好了按键精灵如何找图。
C#实现按键精灵的找图找⾊找字的功能 找⾊:/// <summary>/// 找颜⾊/// </summary>/// <param name="parPic">查找的图⽚的绝对路径</param>/// <param name="searchColor">查找的16进制颜⾊值,如#0C5FAB</param>/// <param name="searchRect">查找的矩形区域范围内</param>/// <param name="errorRange">容错</param>/// <returns></returns>System.Drawing.Point FindColor(string parPic, string searchColor, System.Drawing.Rectangle searchRect, byte errorRange = 10){var colorX = System.Drawing.ColorTranslator.FromHtml(searchColor);var parBitmap = new Bitmap(parPic);var parData = parBitmap.LockBits(new System.Drawing.Rectangle(0, 0, parBitmap.Width, parBitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); var byteArraryPar = new byte[parData.Stride * parData.Height];Marshal.Copy(parData.Scan0, byteArraryPar, 0, parData.Stride * parData.Height);if (searchRect.IsEmpty){searchRect = new System.Drawing.Rectangle(0, 0, parBitmap.Width, parBitmap.Height);}var searchLeftTop = searchRect.Location;var searchSize = searchRect.Size;var iMax = searchLeftTop.Y + searchSize.Height;//⾏var jMax = searchLeftTop.X + searchSize.Width;//列int pointX = -1; int pointY = -1;for (int m = searchRect.Y; m < iMax; m++){for (int n = searchRect.X; n < jMax; n++){int index = m * parBitmap.Width * 4 + n * 4;var color = System.Drawing.Color.FromArgb(byteArraryPar[index + 3], byteArraryPar[index + 2], byteArraryPar[index + 1], byteArraryPar[index]);if (ColorAEqualColorB(color, colorX, errorRange)){pointX = n;pointY = m;goto END;}}}END:parBitmap.UnlockBits(parData);return new System.Drawing.Point(pointX, pointY);}#endregion⽅法中的容错范围,默认设置为10。
python实现按键精灵找⾊点击功能教程,使⽤pywin32和Pillow库Python图⽚处理模块PIL(pillow)pywin32的主要作⽤1.捕获窗⼝;2.模拟⿏标键盘动作;3.⾃动获取某路径下⽂件列表;4.PIL截屏功能找⾊点击功能思路:抓取当前屏幕快照,指定⼀个坐标和颜⾊,如果坐标的颜⾊符合,则点击坐标.1.抓取当前屏幕快照ImageGrab.grab()返回⼀个模式为“RGB”的图像.2.⽅法im.load()返回⼀个⽤于读取和修改像素的像素访问对象3.⽤pywin32操作⿏标键盘王者荣耀⾃动刷冒险模式源码送上:由于分辨率不同,要修改相应坐标和颜⾊才能正常在⾃⼰电脑上运⾏import win32gui, win32api, win32con,timefrom win32api import GetSystemMetricsfrom PIL import ImageGrabdef PilImage(x,y):a, b = GetSystemMetrics(0), GetSystemMetrics(1) # Python获取屏幕分辨率im = ImageGrab.grab((0,0,a,b))#与坐标不同,这⾥0,0,1,1是⼀个像素,⽽坐标是从0~1919的pix = im.load()return pix[x,y]def DisplaySize():return GetSystemMetrics(0), GetSystemMetrics(1) # Python获取屏幕分辨率def LeftClick(x, y): # ⿏标左键点击屏幕上的坐标(x, y)win32api.SetCursorPos((x, y)) # ⿏标定位到坐标(x, y)# 注意:不同的屏幕分辨率会影响到⿏标的定位,有需求的请⽤百分⽐换算win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0) # ⿏标左键按下win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # ⿏标左键弹起# win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN + win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 测试def PressOnce(x): # 模拟键盘输⼊⼀个按键的值,键码: xwin32api.keybd_event(x, 0, 0, 0)'''# 测试a, b = DisplaySize()print(a,b)LeftClick(30, 30) # 点击PressOnce(13) # EnterPressOnce(9) # TABprint(PilImage(80,546))'''# SetCursorPos', 'No error message is available' ⽤管理员⾝份运⾏pycharmif __name__=="__main__":jisu=0ltime=0ntime=0time.sleep(5)print(PilImage(875, 573))print(PilImage(908,323))print(PilImage(1050, 635))print(PilImage(914,486))while 1:if PilImage(875, 573)==(220, 154, 39):LeftClick(875, 573)jisu += 1ntime = time.time()-ltimeltime = time.time()print("刷了第%d次,获得%d经验,⽤时%d秒" % (jisu,jisu*82,ntime))elif PilImage(908,323)==(26, 35, 101):LeftClick(908,323)elif PilImage(1050,635)==(216, 125, 26):LeftClick(1050,635)elif PilImage(1061,138)==(48, 131, 205):LeftClick(1061,145)elif PilImage(1061,138)==(46, 125, 197):LeftClick(1061,145)elif PilImage(914,486)==(196,39,80):LeftClick(914,486)else:passtime.sleep(5)补充知识:python批量将⽂件夹下所有图⽚中⼀种颜⾊改变为随机颜⾊说在前⾯需求:有时需要将图⽚中的⼀种颜⾊更改为另⼀种颜⾊,ps可以帮助我们完成这项任务,但是如果存在若⼲张图⽚,ps就不能满⾜我们的需要,则需要⽤python帮助我们快速解决。
「知识盲区」按键精灵找图、多点找色、找字的原理(续)大家好,我是公众号3分钟学堂的郭立员,今天给带来一期基础知识的文章,主要讲一下找图、多点找色、找字之间的联系与区别,这是一篇基础原理的教程,可能会有些枯燥。
由于篇幅比较长,分两期更新,这是第二期,本期主要讲图色命令相似度参数的原理以及多点找色和找字的原理,如果没看过第一期,可以先看昨天的文章。
相似度上期文章,我们讲完了找图命令的偏色这个参数的原理,这期我们来说说相似度这个参数的原理。
关于相似度可能很多朋友会有一些误区,比如拿找图参数中默认的0.9相似度来说:【误区一】假设找的图是10*10的图片,一共100个像素点,如果相似度是0.9,那么就是90%相似,100个点中有至少90个点一样,就认为是符合要求的图。
【误区二】假设要找的颜色点是646464,为啥是这个颜色,因为它换算成10进制以后,蓝色、绿色、红色就是100,100,100。
如果相似度是0.9,那么每个颜色符合要求的就是90~110。
以上两个都是误区,那么相似度到底是怎么计算呢?还是以相似度0.9为例,那么容差的范围就是±10%,这个10%是针对于颜色的色阶(256个等级)的。
计算公式:256*10%=25.6这是一个颜色的,蓝绿红一共3个颜色分量,所以容差就是25.6*3=76.8得到容差值以后,我们怎么算出颜色值的有效范围呢?还是以646464这颜色为例,76.8这个差值怎么分呢?可以单独给蓝色,那么100+76.8=176(结果取整数部分),100-76.8=23(结果取整数部分),颜色的范围就是176464~B06464。
同样的道理绿色和红色也是这样计算。
除了给单一颜色分量以外,还可以把76.8分给每一个分量,比如均分每一个颜色分量就是±25.6的。
当然随意分也可以。
说到随意分,可不可以这样,比如给蓝色100,给红色-30,两个加起来是70,也在76.8这个容差范围内,这样写行不行?答案是不行,我们说的±指的是变化趋势,3个颜色分量相加是绝对值相加,那么给蓝色100,给红色-30的结果是100+负30的绝对值,也就是130,已经超出了76.8的容差范围。
按键精灵使用说明一、按键精灵简介按键精灵是一款功能强大的自动化工具,它可以模拟键盘、鼠标输入,实现自动化操作。
无论是简单的重复点击、键盘输入,还是复杂的自动执行脚本,按键精灵都能够完成,并且支持多种自定义设置,灵活易用。
二、安装与启动2.安装软件:双击安装包,按照安装向导逐步进行安装。
3.启动软件:安装完成后,可以在桌面或开始菜单中找到按键精灵的图标,双击图标即可启动软件。
三、基本功能1.宏录制与执行按键精灵支持宏录制与执行,可以录制用户在键盘上的操作,然后保存为宏文件,以后就可以通过点击宏文件来执行录制的操作。
录制宏的步骤如下:-打开按键精灵软件,在软件界面上找到“录制”按钮,点击进入录制模式。
-在需要录制的应用程序中进行操作,按键精灵会自动记录下键盘与鼠标的操作。
-完成操作后,点击按键精灵界面上的“停止”按钮,宏录制结束。
-然后将录制的宏保存起来,以后就可以通过点击宏文件再次执行这些操作了。
2.自定义脚本编写脚本的步骤如下:-编写完成后,点击保存按钮保存脚本,并执行脚本。
3.快捷键绑定按键精灵支持为宏命令或脚本命令设置快捷键,方便用户快速执行特定的操作。
设置快捷键的步骤如下:-打开软件界面,找到需要设置快捷键的宏或脚本命令。
-右键点击该命令,选择“快捷键设置”。
-在弹出的对话框中,按下需要设置的快捷键组合。
-设置完成后,按下快捷键即可执行该命令。
四、高级功能1.图像识别与模拟按键精灵支持图像识别与模拟功能,可以根据指定的图片进行判断和操作。
用户可以通过该功能实现一些特殊的操作,如点击一些特定颜色的按钮等。
图像识别与模拟的步骤如下:-打开按键精灵软件,在软件界面上找到“图像识别与模拟”按钮,点击进入图像识别与模拟模式。
-在需要操作的应用程序中截取所需图片,并保存为图像识别文件。
-在图像识别与模拟模式中选择相应的图像识别文件,并设置操作参数。
-完成设置后,点击开始运行按钮,按键精灵会根据设定的图片进行操作。
1、首先明确编写脚本的目的,本例子中主要是完成以下的目标:找到图片,并用鼠标左击一次新建一个脚本,点击上方的【抓抓】
2、在图像下,使【抓抓】在截取窗口的前面,然后点击【截屏】
3、框选出要截取的图片,选择【位图另存为】
4、命名图片,然后保存
5、关闭【抓抓】,点击【附件】
6、点击【添加】,将刚才保存的图片插入脚本中
7、回到脚本,点击【颜色/图形命令】
8、在第一个下拉菜单中选择【区域找图】
9、然后选择找图的区域,如果需要在整个屏幕找图,需要将上面的数值设为电脑的分辨率,如果只需要在一个区域内找图,可以用【抓抓】确定区域坐标
10、然后将红框内的文件名改为图片的名称,可以调整图片的相似度,如果图片在所找的区域内没有相似的图片,就可以调得低一些,反之就调得高一些
11、注意要勾选【使用附件图片路径】,然后点击插入
12、现在就只需要添加鼠标点击的命令了,在【则】后面添加语句,也是图中箭头指示的位置
按键精灵使用图文教程按键精灵脚本
13、点击鼠标命令下的移动命令,不需要管当前的坐标值
14、在【源文件】窗口下,将具体的数值替换成【intX+20,intY+20】因为脚本找到图后,会将图片所在的左上角的坐标位置赋值给X,Y两个变量,
如果直接输入【intX,intY】鼠标点击的时候就会点击图片的左上角,就有可能点不到图片,所以要X,Y设置一个偏移量,这个偏移量是根据图片大小来设置的,
如果图片面积小,偏移量大,也是点击不到图片的,所以设置完成后,需要测试一下
15、然后设置一个延时时间,自己掌握长短
16、接着在输入一个鼠标单击的命令即可
17、按键精灵如何找图这个脚本就编写好了按键精灵如何找图。