我试着用python写一些自动应用程序,我必须尽快从移动设备检查颜色像素。我试着截图,从照片中提取像素。但是它太慢了,
谢谢!
这取决于你的用例有多快。但是,这是使用AndroidViewClient:
的初始想法。#! /usr/bin/env python3
import random
import time
from com.dtmilano.android.viewclient import ViewClient
device, serialno = ViewClient.connectToDeviceOrExit()
w = device.getProperty('display.width')
h = device.getProperty('display.height')
for n in range(20):
x = random.randint(0, w)
y = random.randint(0, h)
start = time.time()
p = device.takeSnapshot(reconnect=True).getpixel((x, y))
print(f'{time.time() - start:.4f}: @({x:4}, {y:4}) -> {p}')
所得结果
0.4690: @( 795, 596) -> (245, 166, 194, 255)
0.5251: @( 330, 1580) -> (192, 102, 144, 255)
0.3421: @( 64, 1582) -> (202, 110, 152, 255)
0.3729: @( 219, 869) -> (248, 174, 201, 255)
0.3395: @( 794, 1871) -> (113, 41, 113, 255)
0.3349: @( 620, 388) -> (243, 169, 198, 255)
0.3432: @( 154, 827) -> (249, 178, 203, 255)
0.2958: @( 336, 956) -> (244, 165, 196, 255)
0.3586: @( 20, 1613) -> (200, 105, 149, 255)
0.3397: @( 119, 1692) -> (199, 89, 136, 255)
0.3915: @( 825, 942) -> (236, 151, 188, 255)
0.3343: @( 654, 306) -> (244, 170, 202, 255)
0.3416: @( 24, 1661) -> (202, 97, 144, 255)
0.4386: @( 788, 1273) -> (223, 134, 171, 255)
0.3927: @( 378, 128) -> (217, 158, 186, 255)
0.3229: @( 273, 1261) -> (235, 152, 183, 255)
0.2288: @( 19, 1567) -> (208, 116, 157, 255)
0.2286: @( 0, 1522) -> (220, 130, 164, 255)
0.3781: @( 728, 1323) -> (222, 132, 168, 255)
0.3954: @( 793, 1755) -> (154, 62, 118, 255)
有一个转换到PIL映像的过程,这个映像仍然可以被删除以提高一点性能。
此外,如果之前的结果不够,使用cullebraterster2 -public可以加快一些速度。