博主之所以开辟这块内容,最终目的是为了学习做游戏脚本,内容仅供参考,觉得有用的小伙伴可以收藏下来以备不时之需。

 

前提环境准备

python3+pillow+pyautogui

先提前安装好python3以及pillow和pyautogui模块

这里介绍一下模块安装方法

pip install pillow
pip install pyautogui
pip install opencv-python

最终效果是利用python脚本模拟电脑计算器进行自动计算,相当于模拟人去点击自带的计算器进行运算,想要做到这一点需要有两个条件:

1.模拟鼠标和键盘的输入工作

2.识别计算器按钮的位置

先来看一下win10电脑的计算器是什么样子的:

 

我们要知道一点,计算器窗口的位置每次都是不同的,如果你是固定去确定按钮的坐标那就太被动了,所以我们这里需要用到图像识别,去识别到按钮的位置,博主这里

做一个示例 做一个1+2=的运算。

废话不多说直接上代码,跟着注释,看懂代码没毛病。

打开你的微信截图截下1,+,2,=四个图片存入脚本所在目录

详细代码

#导入模块
from PIL import ImageGrab
import pyautogui as auto
#定义类
class Screenshoot:
    def __init__(self):
        #self.bbox = bbox
        #self.name = name
        #self.im = ImageGrab.grab(self.bbox)
        #定位xy坐标,confidence为相似度判断,最好不要使用1.0完全相似,比较容易不识别
        self.position_1 = auto.locateCenterOnScreen('1.png', confidence=0.9)
        self.position_2 = auto.locateCenterOnScreen('2.png', confidence=0.9)
        self.position_3 = auto.locateCenterOnScreen('+.png', confidence=0.9)
        self.position_4 = auto.locateCenterOnScreen('=.png', confidence=0.9)
        pass
    def fullshoot(self):
        #全屏截图
        #self.im.save('01.png')
        pass
    def partialshoot(self):
        #局部精确截图
        #self.im.save(self.name+'.png')
        pass
    def position_show(self):
        #打印各坐标
        print(self.position_1)
        print(self.position_2)
        print(self.position_3)
        print(self.position_4)
    def caculate(self):
        #依次点击按钮
        auto.click(self.position_1)
        auto.click(self.position_3)
        auto.click(self.position_2)
        auto.click(self.position_4)
#对象初始化
shoot1 = Screenshoot()
#对象函数执行
shoot1.position_show()
shoot1.caculate()
#shoot1.partialshoot()
#shoot1.fullshoot()

 

运行结果

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐