Python+uiautomator2指定区域截图
想区域截图,但是在网上找了一圈,没有什么有用的信息,基本都是全屏截图的信息。最后只能自己尝试着摸索了。
已知d.screenshot()是截取整个屏幕,尝试根据元素截图d(resourceId="xx.xx.xx").screenshot截图,发现可以截取指定元素区域,具体代码如下
d = u2.connect("192.168.10.10")
d(resourceId="com.xxx.xxx:id/tv_close").screenshot().save("test.png")
既然能截取元素区域的图片,那肯定能够截取指定区域的图片,遂查看screenshot的实现逻辑(在_selector.py里),代码如下
def screenshot(self) -> Image.Image:im = self.session.screenshot()return im.crop(self.bounds())
主要就是self.bounds()这个函数,继续点进去查看,发现截图区域的坐标是调用元素的info信息获取的
def bounds(self):"""Returns:left_top_x, left_top_y, right_bottom_x, right_bottom_y"""info = self.infobounds = info.get('visibleBounds') or info.get("bounds")lx, ly, rx, ry = bounds['left'], bounds['top'], bounds['right'], bounds['bottom'] # yapf: disablereturn (lx, ly, rx, ry)
所以,我们只需要重写一下screenshot函数即可,传入我们指定的坐标。
(只简单重写,本着能用就行的原则,部分异常未做处理)
def screenshot(self,bounds=None) -> Image.Image:im = self.session.screenshot()if isinstance(bounds, tuple) and len(bounds)==4:try:ret = im.crop(bounds)except:raise "poition error"return Falseelse:return retreturn im.crop(self.bounds())
截图时传入 (lx, ly, rx, ry) 4个坐标即可
缺点就是,调用的时候只能用 d.(元素定位信息).screenshot((lx, ly, rx, ry)).save("xx.png"),不能直接使用d.screenshot()这种方法调用。
Python+uiautomator2指定区域截图相关推荐
- python中paste函数的作用,python图片指定区域替换img.paste函数的使用
今天用到了img.paste函数,就写篇笔记记录一下,方便回顾. 做人脸检测,产生负样本的时候想把图片中人连部分用背景的某一部分替换掉,然后再随机裁剪产生负样本,这样比随机裁剪的时候避开人脸区域应该实 ...
- iOS 截图 对view指定区域 以及 对图片 指定区域截图
//MARK:获取截图,对view 制定区域截图static func getCropImage(_ view:UIView,size:CGSize) -> UIImage {//false是透 ...
- Python实现Excel根据指定区域截图(Windows版本)
# -*- coding:utf-8 -*- __author__ = 'yangxin_ryan' from win32com.client import Dispatch, DispatchEx ...
- 用python截取指定网页截图
可以使用 Python 库 "Selenium" 和 "pillow" 来截取指定网页的截图. 首先需要安装 Selenium 和 pillow,使用 pip ...
- OpenCV—Python 图像指定区域裁剪
文章目录 一.指定图像位置的裁剪处理 二.批量处理-指定图像位置的裁剪 三.多进程(加快处理) 在工作中.在做数据集时,需要对图片进行处理,照相的图片我们只需要特定的部分,所以就想到裁剪一种所需的部分 ...
- 浏览器截图方法(长截图、node截图、指定区域截图)
1.打开需要截屏的页面,按键盘上的F2(或者Ctrl+Shift+I)打开浏览器控制台 2.Ctrl+shift+P进入搜索框,输入"screen": 这里有四种截图模式,点击需要 ...
- LINUX选定区域截图
初学LINUX,记录截图命令,方便自己,方便他人. -------------------------------UBUNTU 16.04------------------------------- ...
- 自定义ImageView系列 - 区域截图(下)
功能要点: - 根据控件自身大小计算合适的透明正方形预览区: - 截取预览区图像并按照指定的尺寸缩放,生成Bitmap对象. 本文着重介绍上述第2个要点. 有关第一个要点的内容,请参阅上一篇文章:请点 ...
- Python实现计算机屏幕任意区域截图
程序功能与用法:运行后有个主窗体,上面有个按钮,单击后开始截图,鼠标坐标落下开始截图,鼠标左键抬起表示截图结束,然后弹出对话框提示保存截图文件. 本文要点在于Python扩展库pillow提供的Ima ...
最新文章
- Properties文件读取学习笔记
- Math4DS 直播 NO.10 | “机器学习之父”、加州大学伯克利分校迈克尔·乔丹
- 利用JSP编写程序初步
- STL源码剖析 关联式容器
- ModBus协议寄存器
- 36Kr鬼畜推送,没事别惹程序员
- 神秘TTY:The TTY demystified
- iPhone:你知道这 13 年我是怎么过的吗?
- Python学习入门基础教程(learning Python)--4.2.3 Python的for实现递归,(0629学习笔记)我研究出来了!...
- 网页版简书界面优化小建议
- python 查找excel标红的数据_excel表格如何快速给数据标红-如何将查找出的excel内容批量标记为红色?...
- 贤华老师教你正确护肤,卸妆第一步 选择卸妆产品很重要
- 腾讯云弹性微服务TEM
- 硬盘测试软件cry,CrystalDiskMark测试硬盘官方版
- 学一点Wi-Fi: CCMP
- 做微信还是做APP,两种选择的不同风险
- Electron在win7上加载plotyjs失败的解决方法
- java+小时转为分钟_用java将12862秒转换成 N 小时,K 分钟,M 秒
- 移动云迁移工具:Xen虚拟化迁移到移动云
- C语言牛牛手里有一个字符串A,程序设计语言C实验卡学生.doc