前言:

本章节有个非常重要的函数 locateCenterOnScreen!

如果你有一个图像文件,你可以在屏幕上直观地定位一些东西。

它直接返回x,y坐标点,返回值可以给click()

PyAutoGUI可以获取屏幕截图,将它们保存到文件中,并在屏幕中识别并定位图像。这是有用的,如果你有一个小的图像,比方说,一个按钮,需要点击,并希望找到它在屏幕上。这些特性由PyScreeze模块提供,该模块与PyAutoGUI一起安装

链接:https://www.jianshu.com/u/2b4bc3b5e6fc

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

截图功能需要依赖pillow模块。

OSX使用screencapture命令,它与操作系统一起提供。

Linux使用scrot命令,可以通过运行sudo apt-get install scrot.

关于Ubuntu的特别说明

import pyautogui as auto

屏幕截图()函数

screenshot()

将返回 Image 对象(有关详细信息,请参阅枕头或PIL模块文档)。传递文件名的字符串将屏幕快照保存到文件中,并将其作为Image对象返回。

#  有一个可选的 region 关键字参数,如果不希望看到整个屏幕的截图。

# 可以传递区域的左、顶、宽和高的四个整数元组来捕获:pic_1 = auto.screenshot()

pic_2 = auto.screenshot('my_screenshot.png') #在1920 x 1080屏幕上,screenshot()函数大约需要100毫秒

pic_3 = auto.screenshot("my_screenshot.png ",region=(0,0, 300, 400))

定位函数 (非常重要)

在#1920 x 1080屏幕上,定位函数调用大约需要1或2秒 ,不适用于游戏脚本调用,原因是太慢

locateOnScreen()

例如,假设计算器应用程序在您的计算机上运行,如下所示:

# 当启动计算器界面的时候,这时您不能直接调用moveTo()和click()函数,如果您不知道计算器按钮的确切屏幕坐标。

# 每次启动时,计算器都会出现在一个稍微不同的地方,因此每次都需要重新查找坐标。

# 但是,如果您有该按钮的图像,例如7按钮的图像:

# 就直接用图片识别功能定位它的屏幕坐标(是元组,左、上、右、下),这个返回结果(元组)也可以给center()函数方法,转化成x,y的坐标值

# 如果屏幕上找不到图像,locateOnScreen()  则返回结果为:None.number7_location = auto.locateOnScreen('calc7key.png')   #传入按钮的图片

print(number7_location)  # 返回屏幕所在位置

>>>(1416, 562, 50, 41)

x,y = auto.center(number7_location )  # 转化为 x,y坐标

print(number7_location)  #按键7的坐标是1441,582

>>> (1441, 582)

auto.click(number7_location)

# 点击坐标,click()它是支持元组格式的坐标传入的

#根据图片识别定位x,y坐标(比较好用)

locateCenterOnScreen(image, grayscale=False)

返回找到的第一个截图Image对象在屏幕上的中心坐标(x, y),如果没找到返回Noneauto.locateCenterOnScreen('1.png',grayscale=False)

#  参数grayscale是是否转灰度

>>> (1441, 582)

locateAllOnScreen(image, grayscale=False)

# 返回找到的所有相同截图Image对象在屏幕上的坐标,返回结果是(left, top, width, height)的‘生成器’auto.locateAllOnScreen('xxx.png',grayscale=False)  #遍历找到屏幕上所有显示为xxx的图像对象坐标,转灰度操作=关闭

locate(needleImage, haystackImage, grayscale=False)auto.locate('xxx.png')

# 返回找到的第一个截图Image对象在haystackImage里面的坐标(left, top, width, height),如果没找到返回None

locateAll(needleImage, haystackImage, grayscale=False)auto.locateAll('xxx.png')

# 返回找到的所有相同截图Image对象在haystackImage里面的坐标(left, top, width, height)的生成器

python识别图片文字、并返回文字坐标_PyAutoGui 图片识别+定位+截图函数文档相关推荐

  1. wps怎么将字体嵌入文件_WPS文字怎么将字体嵌入文件让含有特殊字体的文档正常显示...

    WPS文字怎么将字体嵌入文件让含有特殊字体的文档正常显示 时间:2014-11-13   作者:snow   来源:互联网 含有特殊字体的文档默认情况下在其他的电脑中是无法正常显示的,这是因为,此电脑 ...

  2. html 如何把图片作为背景_办公软件操作技巧062:如何给word文档添加图片背景

    在日常工作中,我们经常用word编辑文档,有时为了使文档更加的美观大气,可以给文档添加上背景图片,今天就来和大家分享如何在word中给文档添加图片背景. 方法一:填充图片法 单击"页面布局& ...

  3. python 帮助文档,撰写函数文档,并查看函数文档

    python 帮助文档,撰写函数文档,并查看函数文档 定义函数 def test(a,b):'''参数:a:整数b:整数返回值:a+b'''return a+b 运行函数 test(11,22) 33 ...

  4. 计算机毕业设计Python+django大学生闲置二手交易商城平台(源码+系统+mysql数据库+Lw文档)

    项目介绍 当前在市场经济的快速发展下,我国的经济形势也在不断的发展壮大.特别是在计算机信息化的普及下,新的互联网+业态促使着零售业在不断的转型发展.随着B2C.O2O的不断发展,传统的零售实体都受到了 ...

  5. python哲学内容 多行胜于单行_Python3基础 __doc__ 单行与多行函数文档

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  6. python读取多行函数_Python3基础 __doc__ 单行与多行函数文档

    ? ????   Python : 3.7.0 ??????   OS : Ubuntu 18.04.1 LTS ??????  IDE : PyCharm 2018.2.4 ????? Conda ...

  7. 计算机毕业设计Python+djang的小区疫情防控系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着信息化时代的到来,管理系统都趋向于智能化.系统化,居民小区疫情防控管理系统也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代 ...

  8. 计算机毕业设计Python+djang的图书馆图书借阅归还管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 论文阐述了图书管理系统,并对该系统的需求分析及系统需要实现的设计方法作了介绍.该系统的基本功能包括读者登录,修改密码,读者管理,图书管理和借阅管理等功能,并且个个模块都包括了添加修改和删除和 ...

  9. 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署

    基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档 ...

最新文章

  1. java运行环境jdk的安装和环境变量的配置教程
  2. android 音乐播放器中播放模式的设计
  3. 用一个实际例子理解Docker volume工作原理 1
  4. 【渝粤题库】国家开放大学2021春1080工程数学(本)题目
  5. BugkuCTF-MISC题又一张图片,还单纯吗
  6. android电视原理图,电视机工作原理
  7. 惊爆:「文言文」编程语言,可谓年度最骚语言也
  8. 联想启天M4880(老机)安装Centos7安装总结
  9. 应用商店提示0x80070005错误
  10. 华为太极magisk安装教程_小米手机官方REC装面具(magisk)教程
  11. uniapp实现设备对接wifi功能
  12. java eml 附件_向EML文件追加附件的Java实现
  13. 计算机原理(CPU+存储+OS+指令)
  14. 计算机二级Python操作题练习(第一套)
  15. Linux在加载模块时报insmod: error inserting xxx.ko -1 File exists这个错
  16. 10位、13位时间戳转换成日期格式JS
  17. 计算机网络第一章1-28答案,北邮计算机网络 第一章 课后题答案
  18. 会计用计算机很快是,中级会计考试用的计算器是什么样的?
  19. .NET Framework Initialization Error
  20. 影响力最大化算法——MIA算法python复现

热门文章

  1. 汇编语言的基础知识一
  2. 视频手势画图python_如何裁剪视频
  3. d3.js 刷新折线图(包括坐标轴及路径的刷新及信息点提示)
  4. Spring Boot基于KLock实现分布式锁的使用详解(一)
  5. python matplotlib笔记:饼状图
  6. lsdyna如何设置set中的node_list_如何为3CX配置Gigaset N670 N870 IP PRO
  7. 管理人员如何有效应用表扬与批评进行反馈
  8. 心理学家:当你发现这三个现象,说明有人正在欺骗你,句句很真实
  9. 计算机创新创业1000字,大学生创新创业论文1000字
  10. 金融业大数据风控方式