+ -
当前位置:首页 → 问答吧 → framebuffer截屏

framebuffer截屏

时间:2010-10-08

来源:互联网

现在已经实现了framebuffer截取整屏,并保存为png格式图片。现在需要实现截取(x0,y0),到(x1,y1)这片区域中的显示内容,这个该如何实现?

  在tiff-3.9.4的tools/sgisv.c文件中,可以将LCD上的显示直接保存为tiff格式的图片,在它做截屏时使用的是openGL里库里的一个readdisplay()的function:

  readdisplay(xorg, yorg, xorg+xsize, yorg+ysize, scrbuf, RD_FREEZE);

该函数用来从截取LCD上(xorg, yorg) 到 (xorg+xsize,  yorg+ysize)这一区域的现实内容到scrbuf中。请问,如何直接读写framebuffer中的这片区域?

谢谢!

作者: dglwx   发布时间: 2010-10-08

  1. #define WIDTH 720
  2. #define HEIGHT 576
  3. bg_color = fb_mem;
  4. unsigned short *dest=malloc(sizeof(unsigned short) * WIDTH *HEIGHT);
  5. bg_color = xorg * yorg
  6. while(ysize--){
  7. memcpy(dest, bg_color, xsize);
  8. bg_color = (yorg+ysize)*WIDTH + xorg
  9. dest = dest + xsize
  10. }
复制代码
大概思路如上面,代码没有经过测试,有可能上面的是到着的图像

作者: T-Bagwell   发布时间: 2010-10-08