OK6410预览并实现截图操作(RGB565)(二)

2014-11-24 08:51:57 ? 作者: ? 浏览: 4

return -1;
}


if((n =(ioctl(v4l2_fd, VIDIOC_QUERYCAP, &caminfo)))<0)
printf("Error: failed to get camera info.%d\n",n);
//设置图象模式
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;


fmt.fmt.pix.width = 480;
fmt.fmt.pix.height = 272;


fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB565;
fmt.fmt.pix.priv = V4L2_FMT_OUT;
if((ioctl(v4l2_fd, VIDIOC_S_FMT, &fmt))<0)
printf("Error: failed to set video format.\n");


int type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if((ioctl(v4l2_fd, VIDIOC_STREAMON, &type))<0)
printf("start to get pic %d\n",(int)fmt.fmt.pix.sizeimage);


int ii = 0;
while(1){
n=read(v4l2_fd, fb_buf, 480*272*2);
if (ii == 0 && n > 0) {
int data_fd=-1;

printf("read Data Length:%d\n", n);
preview_buf = malloc(n);
memcpy(preview_buf, fb_buf, n);


char bmpfilename[30];
sprintf(bmpfilename, "/sdcard/photo%d.bmp",1);

if((data_fd = open(bmpfilename,O_CREAT|O_RDWR,0777))<0){
printf("Error: failed to creat photo.bmp.\n");
return 0;
}
printf("bmpfilename is %s\n",bmpfilename);


writebmp(data_fd);
if(data_fd>0)
close(data_fd);
free(preview_buf);
ii = 1;
}
}


}


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: