MonkeyImage API 教程
来源:互联网 发布:mysql注入 编辑:程序博客网 时间:2024/06/06 04:44
MonkeyImage
一个用来控制设备或模拟器屏幕图像的猴子快跑(monkeyrunner)类。图像在截屏时通过屏幕缓冲区拷贝出来。该对象的方法允许你将图像转换为各种存储格式、存储与文件、剪裁以及和另一个MonkeyImage对象进行比较。
你不需要新建一个MonkeyImage实例。可以用MonkeyDevice.takeSnapshot()方法通过截屏来新建一个实例。
概览
convertToBytes(string format)
- 将当前图像转换成特定格式,并且作为字符串返回。你可以将它作为可迭代的二进制字节来访问。
getRawPixel(integer x, integer y)
- 返回图像位置坐标(x,y)上的单个像素点,作为一个整数元组,以(a,r,g,b)格式。
getRawPixelInt(integer x, integer y)
- 返回图像位置坐标(x,y)上的单个像素点,作为一个32位的整数。
getSubImage(tuple rect)
- 将当前图像上矩形选框选出的区域新建一个MonkeyImage对象。
sameAs(MonkeyImage other, float percent)
- 将该MonkeyImage对象与其他的进行比较,并返回比较的结果。percent参数指定两个图像之间差异在多少百分比之内可以看做“相等”。
writeToFile(string path, string format)
- 用指定的文件名将图像以指定的格式写入文件。
公有方法
将当前图像转换成特定格式,并且作为字符串返回。你可以将它作为可迭代的二进制字节来访问。
- 参数
- format 期望输出的格式。支持所有常见的栅格化输出格式。默认值是“png”(Portable Network Graphics编写网络图像)。
示例
- img = device.takeSnapshot()
- png1 = img.convertToBytes()
- png2 = img.convertToBytes()
- bmp = img.convertToBytes('bmp')
- jpg = img.convertToBytes('JPG')
- gif = img.convertToBytes('gif')
- raw = img.convertToBytes('raw')
- invalid = img.convertToBytes('xxx')
- #is the 2 pngs equal?
- print "Two png is equal in bytes:",png1 == png2
- #is the png equals to bmp?
- print "png and bmp is equal in bytes:", png1 == bmp
- #is the jpg eqals to the raw?
- print "jpg and bmp is equals in bytes:",jpg == bmp
- #is the jpg eqals to the xxx?
- print "jpg is a valid argument:",jpg != invalid
- #is the gif eqals to the xxx?
- print "gif is a valid argument:",gif != invalid
- #is the bmp eqals to the xxx?
- print "bmp is a valid argument:",bmp != invalid
- #is the raw equas to xxxx? aims at checking whether argument 'raw' is invalid like 'xxx'
- print 'raw is a valid argument:',raw != invalid
- #would invalid argument drop to png by default?
- print 'Would invalid argument drop to png by default:',png1 == invalid
返回图像位置坐标(x,y)上的单个像素点,作为一个整数元组,以(a,r,g,b)格式。
- 参数
- x 水平方向像素位置,在截屏方向的最左边为0点。
- y 垂直方向像素位置,在截屏方向的最顶端为0点。
- 返回
- 以(a,r,g,b)格式返回一个代表像素的整数元组,其中a是透明度,r,g,b分别是红绿蓝三个颜色值。
返回图像位置坐标(x,y)上的单个像素点,作为一个32位的整数。
- 参数
- x 水平方向像素位置,在截屏方向的最左边为0点。
- y 垂直方向像素位置,在截屏方向的最顶端为0点。
- 返回
- 一个由像素的a,r,g,b的8位通道值组成的32位整数。其中a是最左边的8位值,r是近邻的8位,以此类推。
示例
- viewer = device.getHierarchyViewer()
- note = viewer.findViewById('id/title')
- text = viewer.getText(note)
- print text.encode('utf-8')
- point = viewer.getAbsoluteCenterOfView(note)
- x = point.x
- y = point.y
- img = device.takeSnapshot()
- pixelTuple = img.getRawPixel(x,y)
- pixelInt = img.getRawPixelInt(x,y)
- print "Pixel in tuple:",pixelTuple
- print "Pixel in int:", pixelInt
将当前图像上矩形选框选出的区域新建一个MonkeyImage对象。
- 参数
- rect 一个指定区域的元组(x,y,w,h)。x和y指定了选定区域左上角的0始像素位置。w代表选区宽度,h是高度,都是以像素为单位。
- 图像的方向与截屏时的手机方向相同。
- 返回
一个包含选定区域的MonkeyImage对象。
将该MonkeyImage对象与其他的进行比较,并返回比较的结果。percent参数指定两个图像之间差异在多少百分比之内可以看做“相等”。
- 参数
- otherImage 用来与本对象比较的另一个MonkeyImage对象。
- percent 一个0.0-1.0之间(0.0和1.0包含)浮动的浮点数(float),它表示一个用来使该方法返回“真”的两个图像含有相同像素的百分比。默认值是1.0,即所有的像素必须相同。
- 返回
- 两个图像相同则返回“true”,反之返回“false”。
用指定的文件名将图像以指定的格式写入文件。
- 参数
- filename 完全合法的文件名和输出格式的扩展名后缀。
format 文件输出格式。若未指定,则该放假通过文件名的扩展名来猜测文件格式。若未提供扩展名,则默认使用“png”(Portable Network Graphics便携网络图像)格式。
MonkeyImage验证性代码:
#conding=uft-8import sysfrom com.android.monkeyrunner import MonkeyRunner, MonkeyDevicefrom com.android.monkeyrunner.easy import EasyMonkeyDevicefrom com.android.monkeyrunner.easy import Byfrom datetime import datetimedevice=MonkeyRunner.waitForConnection()img1=device.takeSnapshot()#takeSnapshot()img2=device.takeSnapshot()result=img1.sameAs(img2,0.9)#sameAs()subimg=img1.getSubImage((0,50,50,100))#getSubImage()pic1=img1.convertToBytes()#convertToBytes()path2=sys.path[0][sys.path[0].find(':')+1 : ]+"\\"+ datetime.now().strftime('%Y-%m-%d-%H-%M-%S')+".png"'''path2解析print sys.path[0] #sys.path【0】返回 lib\monkeyrunner.jar:加上当前脚本所在路径#输出结果为 lib\monkeyrunner.jar:C:\Users\ramos-cs\Desktop\monkeyrunnerindex=sys.path[0].find(':')+1print index # index为冒号后面的真实路径所在索引#输出结果为21path1=sys.path[0][index : ]#切片获取当前脚本所在路径,[index : ]截取从index开始后面的字符串print path1 #输出结果为 C:\Users\ramos-cs\Desktop\monkeyrunnerpath2=path1 +"\\"+ datetime.now().strftime('%Y-%m-%d-%H-%M-%S')+".png"print path2#输出结果为 C:\Users\ramos-cs\Desktop\monkeyrunner\2015-09-14-11-30-45.png'''img1.writeToFile(path2,"png")#path2:完全合法的文件名和输出格式的扩展名后缀; "png" 文件输出格式subimg.writeToFile(path2,"png")#writeToFile()
附 MonkeyImag官方API文档:http://www.android-doc.com/tools/help/MonkeyImage.html
- MonkeyImage API 教程
- MonkeyImage api
- MonkeyImage API 实践全记录
- MonkeyImage基本API
- MonkeyImage
- MonkeyRunner—API篇之MonkeyImage&MonkeyRunner
- MonkeyImage函数
- 第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例(原创)
- API拦截教程
- Win32调试API教程
- Win32调试API教程
- ODBC API开发教程
- 注册表API简易教程
- Zen Cart API 教程
- Zen Cart API 教程
- win32 api教程
- 校内api教程
- Zen Cart API 教程
- Xcopy命令参数使用介绍
- IP地址查询接口
- C++析构函数为什么要为虚函数
- docker私有容器搭建
- db2的备份和还原
- MonkeyImage API 教程
- 记一次带宽跑满服务器卡死事故处理
- iOS触摸事件处理
- LCD DRIVER
- Object-C有私有方法吗?私有变量呢?
- IPython notebook的安装配置
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- block简单入门
- 互联网金融——技术与应用——互动出版网