测试截图设置
This commit is contained in:
parent
41b552eca1
commit
517b18efbc
19 changed files with 171 additions and 120 deletions
47
server.py
47
server.py
|
@ -432,31 +432,36 @@ def test_email():
|
|||
return "邮件发送成功!"
|
||||
|
||||
|
||||
@app.route("/test-custom-screenshot")
|
||||
@app.route("/test-screenshot")
|
||||
@get_require_token
|
||||
def test_custom_screenshot():
|
||||
def test_screenshot():
|
||||
import base64
|
||||
import subprocess
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
from mower.utils.device.adb_client.session import Session
|
||||
from mower.utils.device.device import Device
|
||||
from mower.utils.image import img2bytes
|
||||
from mower.utils.recognize import Recognizer
|
||||
|
||||
command = config.conf.custom_screenshot.command
|
||||
|
||||
start = time.time()
|
||||
data = subprocess.check_output(
|
||||
command,
|
||||
shell=True,
|
||||
creationflags=subprocess.CREATE_NO_WINDOW if __system__ == "windows" else 0,
|
||||
)
|
||||
data = np.frombuffer(data, np.uint8)
|
||||
data = cv2.imdecode(data, cv2.IMREAD_COLOR)
|
||||
elapsed = int((time.time() - start) * 1000)
|
||||
|
||||
_, data = cv2.imencode(".jpg", data, [int(cv2.IMWRITE_JPEG_QUALITY), 75])
|
||||
data = base64.b64encode(data).decode("ascii")
|
||||
|
||||
return {"elapsed": elapsed, "screenshot": data}
|
||||
interval = config.conf.screenshot_interval
|
||||
config.conf.screenshot_interval = 0
|
||||
try:
|
||||
config.device = Device()
|
||||
config.device.client.check_server_alive()
|
||||
Session().connect()
|
||||
if config.conf.screencap_strategy == "droidcast":
|
||||
config.device.start_droidcast()
|
||||
config.screenshot_avg = None
|
||||
config.recog = Recognizer()
|
||||
for _ in range(5):
|
||||
config.recog.update()
|
||||
img = config.recog.img
|
||||
data = base64.b64encode(img2bytes(img)).decode("ascii")
|
||||
elapsed = round(config.screenshot_avg)
|
||||
result = {"success": True, "elapsed": elapsed, "screenshot": data}
|
||||
except Exception:
|
||||
result = {"success": False}
|
||||
config.conf.screenshot_interval = interval
|
||||
return result
|
||||
|
||||
|
||||
@app.route("/check-skland")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue