在adb shell中,screencap -h告诉我:
usage: screencap [-hp] [-d display-id] [FILENAME]
-h: this message
-p: save the file as a png.
-d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
它不表示捕获的屏幕是什么类型的文件。
答案 0 :(得分:1)
首先,您发布的消息表示格式:您可以使用-p
标记获取PNG文件。
您会找到screencap here的来源。显然,screencap
以原始格式保存数据(除非您告诉它将其保存为PNG)。
您可以在源代码中找到有关格式的更多信息:
似乎从12字节标题开始:
像素格式(4个字节)。可用格式列于in this file:
PIXEL_FORMAT_RGBA_8888 = HAL_PIXEL_FORMAT_RGBA_8888,// 4x8位RGBA PIXEL_FORMAT_RGBX_8888 = HAL_PIXEL_FORMAT_RGBX_8888,// 4x8位RGB0 PIXEL_FORMAT_RGB_888 = HAL_PIXEL_FORMAT_RGB_888,// 3x8位RGB PIXEL_FORMAT_RGB_565 = HAL_PIXEL_FORMAT_RGB_565,// 16位RGB PIXEL_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888,// 4x8位BGRA PIXEL_FORMAT_RGBA_5551 = HAL_PIXEL_FORMAT_RGBA_5551,// 16位ARGB PIXEL_FORMAT_RGBA_4444 = HAL_PIXEL_FORMAT_RGBA_4444,// 16位ARGB PIXEL_FORMAT_A_8 = 8,// 8位A
width * height * bytesPerPixel(pixelFormat)
个字节。图像是逐行保存的,因此给定屏幕位置的像素数据从偏移(y * width + x) * bytesPerPixel(pixelFormat)
开始。大多数像素格式的解码都非常简单。 Other users assume屏幕缓冲区始终为PIXEL_FORMAT_RGBA_8888
。查看链接问题的答案,了解如何将其转换为文件的说明 - 或者只使用-p
选项!