【问题标题】:Convert adb screencap raw to png将 adb screencap raw 转换为 png
【发布时间】:2021-08-16 03:18:46
【问题描述】:

我试图避免使用screencap -p,因为它至少比输出raw 慢3 倍。但是我在将 raw 转换为 png 时遇到了困难。

import subprocess
import cv2
import numpy as np

output = subprocess.check_output(f'src\\adb\\adb -s {serial} shell screencap')
array = np.frombuffer(output[12:], np.uint8).reshape(720, 1280, 4)
image = cv2.cvtColor(array, cv2.COLOR_BGRA2RGB)

我遇到了这个异常:

Exception has occurred: ValueError
cannot reshape array of size 3691368 into shape (720,1280,4)

【问题讨论】:

    标签: python numpy adb


    【解决方案1】:

    在我写这个问题的时候,我再次阅读了异常并意识到它一定是一些格式问题,例如\r\n而不是\n,导致数组大小是那个奇怪的数字。

    解决方法很简单:

    output = subprocess.check_output(f'src\\adb\\adb -s {serial} shell screencap').replace(b'\r\n', b'\n')
    

    希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-10-06
      • 2020-06-14
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      相关资源
      最近更新 更多