使用Python开发游戏运行脚本(三)图片查找

python 专栏收录该内容
5 篇文章 6 订阅

本文接上一篇文章 使用Python开发游戏运行脚本(二)实现模拟点击

上一篇我们已经实现了python调用大漠插件查找指定的窗口,进行窗口句柄绑定,并实现鼠标模拟点击的功能;接下来我们要做的则是通过大漠插件提供的API,实现特定图片的查找功能。

一、截图保存我们需要查找的特定图片

要查找特定图片的第一步,是创建这张图片,并把这张图片存放到python项目的特定目录。
大漠插件支持查找的图片,必须是24位色格式的位图,一听24位色格式的位图是不是有点懵?24位色格式的位图是什么东西?而这种格式的图片我们又该如何创建呢?其实完全不需要担心这个问题,即使你完全没有RGB三色图之类的概念,也依然可以创建出这种图片;因为大漠插件本身为我们提供了一个便捷的工具类【大漠综合工具】,简单几步就能帮我们实现24位位图的截取和保存。

首先我们打开大漠插件的目录,一般大漠插件的根目录如下图所示的结构,里面有dm.dll动态库,大漠接口说明文档,大漠综合工具之类的文件。这里我们需要的是【大漠综合工具】
大漠综合工具01
打开这个【大漠综合工具】,主页面如下图图所示:
大漠综合工具02
这个综合工具的功能是非常强大的,这里我们简单介绍两种。

作用1:获取特定窗口的信息

当我们把箭头标注的圆圈拖拽到具体的窗口,然后再点击左侧属性按钮,就能非常直观的看到对应窗口的具体信息了;
特定窗口的信息捕获01
这里我们以【大漠插件接口说明】文档为例,当我们把圆圈拖拽到【大漠插件接口】文档窗口,然后再点击属性按钮,就能看到【大漠插件接口】文档窗口相关的信息了;有了这些信息,我们就能更方便的调用dm.FindWindow(class,title)方法查找具体窗口进行绑定了 。
特定窗口的信息捕获02

作用2:创建24位色格式的bmp位图

这里我们继续以【大漠插件接口说明】文档为例,当我们点击抓图按钮之后,整个桌面就会进入大漠插件的截屏模式,选择左上角的这个主页icon,然后点击确定,就能看到如下图所示的图片了。
抓取图片
保存我们截取好的【主页】Icon图标到python项目的特定目录,我这里是保存到了picture目录,命名为【icon_01_home.bmp】
保存bmp位图

二、进行图片查找

话不多说,这里直接上代码和代码运行结果截图

import win32com.client

if __name__ == '__main__':
    # 调用大漠插件,获取大漠对象
    dm = win32com.client.Dispatch('dm.dmsoft')
    # 设置全局路径,设置了此路径后,所有接口调用中,相关的文件都相对于此路径. 比如图片,字库等
    dm.SetPath("D:\PycharmProject\PythonMouseKey\dmtest\picture")
    # 查找窗口句柄
    window_handle = dm.FindWindow("HH Parent", "大漠接口说明 v3.1233") 
    # 进行窗口绑定
    is_bind_success = dm.BindWindow(window_handle, "normal", "normal", "normal", 0)
    # 查找图片
    if is_bind_success:
        dm_ret = dm.FindPicEx(0, 0, 800, 800, "icon_01_home.bmp", "000000", 0.9, 0)
        print("查找到的图片坐标信息:" + str(dm_ret))

查找特定图片
可以看到,我们成功找到了之前保存在项目目录dmtest\picture文件夹中的【icon_01_home.bmp】图片的位置信息(0,177,3),这个参数的0是序号的意思,如果FindPicEx方法找到多个图片,会以此用**|**号分割,并在相应坐标的前面添加上序号;这里因为只找到了一个,所以只返回了一个。
FindPicEx接口说明

  • 1
    点赞
  • 0
    评论
  • 11
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

AFinalStone

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值