屏幕图像
from ascript.android import screen
从屏幕中 获取图像数据, 图像转换 等操作
使用场景
- 获取屏幕截图,作为所有图色识别的基础
- 指定区域截图,减少不必要的处理范围
- 不同格式转换(Bitmap、PIL Image、OpenCV Mat),适配不同处理需求
- 获取/比较指定坐标的颜色值
- 截图保存到文件,用于调试或记录
方法
截图
获取一张当前屏幕的截图,图片格式可以为 :
Android Bitmap
Android Image需手动close释放,否则后续截图报错!
Python PIL Image
Python Opencv MatBGR格式
- 函数
screen.capture(x:int=None,y:int=None,x1:int=None,y1:int=None,pixel_format=FORMAT_BITMAP)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| x,y,x1,y1 | int | 否 | 截图的矩形范围坐标 默认:全屏截图 |
| pixel_format | int | 否 | 截图格式: screen.FORMAT_BITMAP : android bitmap(默认) screen.FORMAT_ANDROID_IMAGE : 已过时 screen.FORMAT_PIL_IMAGE : Python Pil Image screen.FORMAT_CV_MAT : Python OpenCv BGR MAT screen.FORMAT_IMAGE_DATA : 图片byte[]数据,包含data,rowStride,width,height |
- 返回值
Bitmap 或 Pil-Image 或 OpencvMat Android图片对象
- 示例
# 截取屏幕截图,格式为Bitmap
from ascript.android import screen
bitmap = screen.capture()
print(bitmap)
# 截取指定范围屏幕,格式为Bitmap
from ascript.android import screen
bitmap = screen.capture( 122,358,808,979)
print(bitmap)
# 截取屏幕截图,返回值为Pil Image
from ascript.android import screen
pil_image = screen.capture(pixel_format=screen.FORMAT_PIL_IMAGE)
print(pil_image)
# 截取屏幕截图,返回值为Opencv mat
from ascript.android import screen
cv_mat = screen.capture(pixel_format=screen.FORMAT_CV_MAT)
print(cv_mat)
# 截取屏幕截图,返回值Android Image-Data
from ascript.android import screen
image_data = screen.capture(pixel_format=screen.FORMAT_IMAGE_DATA)
# image_data.data #图片byte[]数据
# image_date.rowStride
# image_date.width
# image_data.height