别时茫茫 2012-08-27
步骤一:
adbpull/dev/graphics/fb0fb0
android的adb命令,按照Linux所有信息文件化的特点提取屏幕数据,即fb0文件
步骤二:
pythonrgb565torgb888.py<fb0>fb0.888
提取到的fb0文件是16位的,考虑到第三步的转换无法处理16位的数据文件,所以依赖一个python文件把它转换为888即24位的RGB文件
步骤三:
convert-depth8-size320x480RGB:fb0.888fb0.png
Linux下运用convert命令进行转换
pythonrgb565torgb888.py源码如下
import sys
while 1:
colour = sys.stdin.read(2)
if not colour:
break
colour = ord(colour[1]) << 8 | ord(colour[0])
r = (colour & 0xF800) >> 11
g = (colour & 0x07E0) >> 5
b = (colour & 0x001F) >> 0
r *= 8
g *= 4
b *= 8
sys.stdout.write(chr(r))
sys.stdout.write(chr(g))
sys.stdout.write(chr(b))