Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >“亚洲开发银行screencap /sdcard/屏幕快照”是什么格式?(没有"-p“标志)

“亚洲开发银行screencap /sdcard/屏幕快照”是什么格式?(没有"-p“标志)
EN

Stack Overflow用户
提问于 2014-02-25 23:46:21
回答 3查看 7.5K关注 0票数 8

我希望使用没有adb screencap标志的-p实用程序。我原以为输出会以原始格式转储,但看起来不像。我尝试用Pillow (python)库打开原始图像文件,结果是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ adb pull /sdcard/screenshot.raw screenshot.raw
$ python
>>> from PIL import Image
>>> Image.open('screenshot.raw')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/....../lib/python2.7/site-packages/PIL/Image.py", line 2025, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file

如果找不到正确的方法来读取这样的原始图像,我甚至尝试了以下方法:How to read a raw image using PIL?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> with open('screenshot.raw', 'rb') as f:
...     d = f.read()
... 
>>> from PIL import Image
>>> Image.frombuffer('RGB', len(d), d)
__main__:1: RuntimeWarning: the frombuffer defaults may change in a future release; for portability, change the call to read:
  frombuffer(mode, size, data, 'raw', mode, 0, 1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/..../lib/python2.7/site-packages/PIL/Image.py", line 1896, in frombuffer
    return frombytes(mode, size, data, decoder_name, args)
  File "/Users/..../lib/python2.7/site-packages/PIL/Image.py", line 1821, in frombytes
    im = new(mode, size)
  File "/Users/..../lib/python2.7/site-packages/PIL/Image.py", line 1787, in new
    return Image()._new(core.fill(mode, size, color))
TypeError: must be 2-item sequence, not int

所有可能的模式选项都会导致相同的TypeError异常。

下面是hexdump实用程序所揭示的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hexdump -C img.raw | head
00000000  d0 02 00 00 00 05 00 00  01 00 00 00 1e 1e 1e ff  |................|
00000010  1e 1e 1e ff 1e 1e 1e ff  1e 1e 1e ff 1e 1e 1e ff  |................|
*
000038c0  1e 1e 1e ff 1e 1e 1e ff  21 21 21 ff 2b 2b 2b ff  |........!!!.+++.|
000038d0  1e 1e 1e ff 1e 1e 1e ff  1e 1e 1e ff 1e 1e 1e ff  |................|
*
00004400  1e 1e 1e ff 1e 1e 1e ff  47 47 47 ff 65 65 65 ff  |........GGG.eee.|
00004410  20 20 20 ff 1e 1e 1e ff  1e 1e 1e ff 1e 1e 1e ff  |   .............|
00004420  1e 1e 1e ff 1e 1e 1e ff  1e 1e 1e ff 1e 1e 1e ff  |................|
*

在osx上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ file screenshot.raw 
screenshot.raw: data

在没有screencap标志的情况下,-p帮助页面也不会显示输出数据的格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ adb shell screencap -h
usage: screencap [-hp] [FILENAME]
   -h: this message
   -p: save the file as a png.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-26 00:00:17

由于您的文件的摘录,我想您的原始文件被格式化为宽度x高度,然后整个RGBA像素集(32位)(宽度x高度时间)--我看到您在这里看到的是一个720x1280图像。

希望ImageMagick工具集可以帮助您以更合适的文件格式查看/转换它。下面的示例可能对您有所帮助(ImageMagick转换命令,有关osx,请参见http://cactuslab.com/imagemagick/ )。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# skip header info  
dd if=screenshot.raw of=screenshot.rgba skip=12 bs=1
# convert rgba to png
convert -size 720x1280 -depth 8 screenshot.rgba screenshot.png

如果它不起作用,您可以尝试通过skip=8和/或720x1280将skip=8更改为1280x720。

希望能有所帮助

票数 5
EN

Stack Overflow用户

发布于 2015-09-22 23:12:58

格式:

  • 4字节为uint32 - width
  • 4字节为uint32 - height
  • 4字节为uint32 - pixel format
  • (width * heigth * bytespp)字节为字节数组- image data,其中bytespp是每个像素的字节,依赖于pixel format。通常bytespp是4。

来自source code of screencap的信息。

以你为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
00000000  d0 02 00 00 00 05 00 00  01 00 00 00 1e 1e 1e ff
  • d0 02 00 00 -宽度- uint32 0x000002d0 = 720
  • 00 05 00 00 -高度- uint32 0x00000500 = 1280
  • 01 00 00 00 -像素格式- uint32 0x00000001 =1= PixelFormat.RGBA_8888 => bytespp = 4 => RGBA
  • 1e 1e 1e ff -第一像素数据- R = 0x1e; G = 0x1e; B = 0x1e; A = 0xff;

以大小720*1280*4的字节数组存储数据的像素。

票数 16
EN

Stack Overflow用户

发布于 2019-12-24 07:39:40

要阅读亚行用python编写的原始格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from PIL import Image
Image.frombuffer('RGBA', (1920, 1080), raw[12:], 'raw', 'RGBX', 0, 1)

最重要的部分是跳过标题,正如@Emmanuel的回答中提到的

请注意,(1920,1080)是您的设备分辨率,可以通过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell wm size

希望这将节省12个小时来调查为什么cv2.火柴模板在几乎相同的图像上有不同的匹配。

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

https://stackoverflow.com/questions/22034959

复制
相关文章
div 水平排列
Flex 布局 最简单的一种方式 ,css3 新增。父级 div 直接使用 display: flex; 即可 html
草帽lufei
2022/07/29
2.2K0
div 水平排列
div 环形排列_三个div如何并排
红色点:为每个黄色DIV的坐标点;即绝对定位时的元素,left值 和 top值 ,设置的点;
全栈程序员站长
2022/09/19
2.8K0
div 环形排列_三个div如何并排
Latex中插入多张图片,实现并排排列或者多行多列排列
但是我原来只插入过一张图片(图片内容来源于网络;是国漫一人之下的宝儿姐。强推这部国漫~),代码如下,效果如图:
全栈程序员站长
2022/08/14
24.6K1
Latex中插入多张图片,实现并排排列或者多行多列排列
web前端学习摘要。
HTML是具有语义化的语言,针对网页的布局,有一类标签代表各种意义的“布局盒子”。所有的布局类标签都主要用来构建页面的内容区域,是双标签类型,是双标签类型,默认显示为块状元素。
7537367
2020/07/27
3.7K0
js动态添加div
因为每个input标签的name如果相同的话, 在后端接收的时候会出错, 所以我的解决办法就是在name后加上一个数字, 后端用一个循环进行接收
烟草的香味
2019/07/25
24.5K0
div 等块级标签横向排列的方法总结
块级标签的默认文档流是上下排列的,再配上横向排列的方法,请过适当的嵌套,可以应对几乎所有常见的布局需求,因此,我决定总结一下 div 横向排列的方法。这也是我初学前端时最困扰的问题~
一墨编程学习
2018/09/14
3.3K0
div 等块级标签横向排列的方法总结
根据数据源字段动态设置报表中的列数量以及列宽度
在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽度,已铺满整个页面。本文就讲解一下Act
葡萄城控件
2018/01/10
4.9K0
根据数据源字段动态设置报表中的列数量以及列宽度
如何获得对云计算的正确控制
在当今的背景下,客户仍然拥有他们的数据,但可以与云计算提供商分享管理权。“控制”的概念已从基于物理位置的所有权转变为对流程的控制。因此,企业信息安全和风险管理领导者需要采用间接控制的新方法来提高效率和安全性,最重要的是让人高枕无忧。
静一
2018/07/31
1.3K0
如何获得对云计算的正确控制
linux awk获得某一列
因此,如果想要把某一文件的总行数赋值给变量nlines,可以表达为: 1) nlines=(awk 'END{print NR}' filename) 或者 2) nlines=$(awk 'END{print NR}' filename)
用户5760343
2022/05/23
2.9K0
linux awk获得某一列
Masonry 布局tag标签(4343排列)
效果 image.png demo // TagAppDto dto; // List<TagAppDto> dtoList = new ArrayList<>(); // dtos
GuangdongQi
2018/05/24
8100
如何在深度学习竞赛中获得前五名
本文中的所有代码都在GitHub Repository上。数据集已经在适当的文件夹中,并且代码可以运行(在安装PyTorch之后)。
代码医生工作室
2020/04/20
7860
如何在 Tableau 中对列进行高亮颜色操作?
在做数据分析时,如果数据量比较大,可以考虑使用颜色对重点关注的数据进行高亮操作,显眼的颜色可以帮助我们快速了解数据和发现问题。比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作——
小马哥的牛棚
2020/08/20
5.8K0
JS实现鼠标拖动div移动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript">
小小鱼儿小小林
2020/06/23
34.4K0
css应知应会 第四集
3、当父元素中显示不下所有的已浮动子元素的话,那么最后一个将换行,依次类推。但有可能会被卡住
李才哥
2020/08/17
1.2K0
css应知应会 第四集
赛后跟踪:如何在 ImageNet 比赛中获得冠军?
近两个月,国内团队先后在全球权威的人脸检测评测平台 FDDB 和全球自动驾驶算法公开排行榜 KITTI 以及 Cityscapes 上取得非常好的成绩,这在一定程度上证明了国内计算机视觉相关算法已达到国际顶尖水平。 今年 ILSVRC 2016(全称是ImageNet Large Scale Visual Recognition Challenge)分为五大部分,包括:目标检测、目标定位、视频中目标物体检测、场景分类、场景分析。在昨天,全球最为权威的计算机视觉大赛 ILSVRC2016(大规模图像识别竞赛)
AI科技评论
2018/03/08
1.5K0
赛后跟踪:如何在 ImageNet 比赛中获得冠军?
如何在 Discourse 中批量移动主题到不同的分类中
例如,我们需要将下面的主题批量从当前的分类中移动到另外一个叫做 数据库 的分类中。
HoneyMoose
2021/07/23
1.2K0
如何在 Discourse 中批量移动主题到不同的分类中
如何在 Linux 中以脚本模式运行 Top
在 Centos8 中,我们执行本文中的命令。下面命令按照 CPU 使用率对数据进行排序,并打印命令中指定的前 20 行。
用户9236362
2021/11/30
2.5K0
“以终为始”的正确使用方式
以终为始是一种思维方式。如果终局确定,那么根据已知的终局就能推演出达到终局的路径,最终形成一个解决方案。举个例子,如果你要盖一栋楼,那么在盖之前的规划的大楼效果就是”终“,通过这个效果图来反推我们的建筑施工图、结构施工图等,最终形成一个完整的解决方案。
石云升
2022/08/25
5880
点击加载更多

相似问题

在div中以图标形式并排列表项(css)

884

在移动列表项中显示多个div列

11

需要div排列,如截图所示

10

以特定模式排列列表项

33

Div没有正确排列

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文