首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将adb录屏raw转换为png

将adb录屏raw转换为png
EN

Stack Overflow用户
提问于 2021-08-16 03:18:47
回答 1查看 29关注 0票数 0

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

代码语言:javascript
复制
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)

我得到了一个例外:

代码语言:javascript
复制
Exception has occurred: ValueError
cannot reshape array of size 3691368 into shape (720,1280,4)
EN

回答 1

Stack Overflow用户

发布于 2021-08-16 03:18:47

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

解决方案很简单:

代码语言:javascript
复制
output = subprocess.check_output(f'src\\adb\\adb -s {serial} shell screencap').replace(b'\r\n', b'\n')

希望这对其他人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68797039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档