消息关闭
    暂无新消息!
在一个android5.0的操作系统上,我想通过对 /dev/graphics/fb0的操作改变屏幕图像的显示。

我先在一个界面的时候,执行cat /dev/graphics/fb0 > screen.raw 操作保存了一个raw图片
然后等到切换另一个界面之后,我再执行echo screen.raw > /dev/graphics/fb0命令
但是屏幕显示没有变化。

后来我又尝试用了dd命令,也是没有变化。

9个回答

︿ 1
1,file screen.raw,查看这个文件大小。到底有没有抓取 成功。
2,fb0中的数据未必就是rgb888或者rgb656。
3,确保screen.raw这个文件确实抓取了内容后,可以使用yuv-tool看看。到底什么格式的。
︿ 0
想整投屏?我之前试了也不行,换个思路把, 我已经整了个投屏, 目前只能把MTK的设备投到其它的设备(如android手机,ios手机,电脑等)
︿ 0
参照如下,每次应将图像数据放至偏移位置
240 struct fb_var_screeninfo {
241         __u32 xres;                     /* visible resolution           */
242         __u32 yres;
243         __u32 xres_virtual;             /* virtual resolution           */
244         __u32 yres_virtual;
245         __u32 xoffset;                  /* offset from virtual to visible */
246         __u32 yoffset;         

例如:在800X600分辨率下,xres是800,yres是600,xres_virtual和yres_virtual则不一定。

如果xres_virtual为800,yres_virtual为1200,则意味着内存中是有两块显示区域的,此是yoffset的位置决定当前用那块区域显示。
yoffset=0,则你的方式可行,yoffset=600,则你应该将图像数据刷到600行及以后才会显示。

其它分辨率的情况,同理推断。