Mar*_*cus 46 graphics android screenshot ffmpeg
我的目标是能够键入一个单词命令,并从USB连接的Nexus One屏幕截图中获取屏幕截图.
到目前为止,我可以32bit xRGB888通过这样拉动它来获得我认为是原始图像的帧缓冲:
adb pull /dev/graphics/fb0 fb0
Run Code Online (Sandbox Code Playgroud)
从那里开始,我很难将它转换为png.我正在尝试像这样的ffmpeg:
ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb8888 -s 480x800 -i fb0 -f image2 -vcodec png image.png
Run Code Online (Sandbox Code Playgroud)
这创造了一个可爱的紫色图像,其部分模糊地与屏幕相似,但它绝不是一个干净的屏幕截图.
Ben*_*ton 90
ICS的一个更简单的解决方案是从命令行使用以下内容
adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png screenshot.png
Run Code Online (Sandbox Code Playgroud)
这将把screenshot.png文件保存在当前目录中.
测试运行4.0.3的三星Galaxy SII和SII.
And*_*sev 13
实际上,还有一个非常简单的从Android设备中获取屏幕截图的能力:编写如下的简单脚本1.script:
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('1.png','png')
Run Code Online (Sandbox Code Playgroud)
并打电话monkeyrunner 1.script.
小智 11
似乎N1的帧缓冲器使用RGB32编码(每像素32位).
这是我使用ffmpeg的脚本:
adb pull /dev/graphics/fb0 fb0
dd bs=1920 count=800 if=fb0 of=fb0b
ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 480x800 -i fb0b -f image2 -vcodec png fb0.png
Run Code Online (Sandbox Code Playgroud)
从这里描述的ADP1方法派生的另一种方法http://code.lardcave.net/entries/2009/07/27/132648/
adb pull /dev/graphics/fb0 fb0
dd bs=1920 count=800 if=fb0 of=fb0b
python rgb32torgb888.py <fb0b >fb0b.888
convert -depth 8 -size 480x800 RGB:fb0b.888 fb0.png
Run Code Online (Sandbox Code Playgroud)
Python脚本'rgb32torgb888.py':
import sys
while 1:
colour = sys.stdin.read(4)
if not colour:
break
sys.stdout.write(colour[2])
sys.stdout.write(colour[1])
sys.stdout.write(colour[0])
Run Code Online (Sandbox Code Playgroud)
使用我的HTC Hero(因此从480x800调整到320x480),如果我使用rgb565而不是8888,这是有效的:
ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 320x480 -i fb0 -f image2 -vcodec png image.png
Run Code Online (Sandbox Code Playgroud)
小智 6
如果你安装了dos2unix,那么下面
adb shell screencap -p | dos2unix > screen.png
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33698 次 |
| 最近记录: |