屏幕图像
from ascript.android import screen
从屏幕中 获取图像数据
, 图像转换
等操作
方法
屏幕缓存
屏幕图像数据 缓存至某一时刻 ,后续所有的图色操作都基于缓存运行.
- 函数
screen.cache(is_cache:bool=False,bitmap=None,file=None)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
is_cache | bool | 否 | 是否缓存 True:缓存 False:取消缓存 |
bitmap | Bitmap图片对象 | 否 | 是否将一张android bitmap 作为图色缓存 默认为None,缓存当前屏幕 如填入Bitmap参数,所有图色方法都从这个Bitmap图像中检测 |
file | 图片文件地址 | 否 | 是否将一个图片文件作为图色缓存 默认为None,缓存当前屏幕 如填入对应的图片文件地址,所有图色方法都从这个图片文件中检测 |
- 示例
# 打开屏幕缓存
from ascript.android import screen
screen.cache(True)
# 关闭屏幕缓存
from ascript.android import screen
screen.cache(False)
# 将一个图片文件缓存为屏幕图像,所有图像方法都从这个图片文件中检测
from ascript.android import screen
from ascript.android.system import R
# 将sd卡中的a.png图片作为屏幕图像缓存起来.
screen.cache(False,file=R.sd("a.png"))
截屏
获取一张当前屏幕的内存截图,截图格式为 Android Bitmap
如果需要 将图像存储为文件,清参考 图像转文件
- 函数
screen.capture(x:int=None,y:int=None,x1:int=None,y1:int=None)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
x,y,x1,y1 | int | 否 | 截图的矩形范围坐标 默认:全屏截图 |
- 返回值
Bitmap Android图片对象
- 示例
# 截取 屏幕
from ascript.android import screen
bitmap = screen.capture()
print(bitmap)
# 截取 指定范围屏幕
from ascript.android import screen
bitmap = screen.capture( 122,358,808,979)
print(bitmap)
图像某坐标色值
获取图像指定坐标的颜色值
- 函数
screen.get_color(x:int,y:int,bitmap = screen.capture())
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
x | int | 是 | 坐标x |
y | int | 是 | 坐标y |
bitmap | int | 否 | 指定图像,默认:全屏截图 |
- 返回值
Color 颜色值对象,点击查看其内部属性值
- 示例
from ascript.android import screen
color = screen.get_color(200,200)
print(color.rgb) #16进制RGB颜色值
print(color.argb) #16进制ARGB颜色值 PS:A位透明值通道
print(color.r,color.g,color.b,color.a) # 获取R通道,G通道,B通道,A通道 10进制颜色值
图像所有色值
获取整张图像所有色值
- 函数
screen.get_colors(bitmap = screen.capture())
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
bitmap | int | 否 | 指定图像,默认:全屏截图 |
- 返回值
int[] 10进制 颜色数组列表.可通过Color构造,获取RGB颜色值
- 示例
from ascript.android import screen
from ascript.android.screen import Color
colors = screen.get_colors()
print(f"共有:{len(colors)}个颜色点")
for i in range(len(colors)):
# 打印出屏幕第一个点的颜色值
if i == 0:
c = Color(colors[i])
print(c.rgb)
区域颜色点数量
在一个区域内找 指定颜色点的数量
- 函数
screen.get_color_num(colors:str,rect:list=None,sim:float=0.9)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
colors | int | 否 | 颜色值:格式1: "#FFFFFF" 检索单一颜色值数量 格式2:"#FFFFFF|#000000" 多种颜色满足其一则算数 格式3:"#000000-#111111" 给定颜色值 在 两个颜色值之间则算数 |
rect | list | 否 | 屏幕范围 |
sim | float | 否 | 相似度 0~1之间,默认0.9:90%相似度 |
- 返回值
Bitmap Android图片对象
- 示例
# 获取屏幕中 #6989C5 和 #FF784B 颜色值数量
from ascript.android import screen
num = screen.get_color_num("#6989C5|#FF784B")
print(num)
# 获取屏幕指定范围内 #6989C5 和 #FF784B 颜色值数量
from ascript.android import screen
num = screen.get_color_num("#6989C5|#FF784B",rect =[413,358,709,578])
print(num)
# 获取屏幕指定范围内 #6989C5 和 #FF784B 相似度80% 的颜色点数量
from ascript.android import screen
num = screen.get_color_num("#6989C5|#FF784B",rect =[413,358,709,578],sim=0.8)
print(num)