天嵌 ARM开发社区

 找回密码
 注册
查看: 1652|回复: 1

这个能实现OV9650 抓图吗

[复制链接]
herorising 发表于 2012-4-6 18:01:19 | 显示全部楼层 |阅读模式
WORD width=GetSystemMetrics(SM_CXSCREEN);
  WORD height=GetSystemMetrics(SM_CYSCREEN);
  BOOL ret;
  BYTE* DDBdata=new BYTE[width*height*2];
  BYTE* DIBdata;
  ret=DeviceIoControl(hCam,IOCTL_CAM_COPY,NULL,NULL,DDBdata,width*height*2,NULL,NULL);
  if(!ret)
  AfxMessageBox(_T("read picture failure !"));
  else
  {

  CBitmap bitmap;
  HBITMAP dstBmp;
  bitmap.CreateBitmap(width,height,1,16,DDBdata);
  HDC hdcSrc = CreateCompatibleDC(NULL);
  HDC hdcDst = CreateCompatibleDC(NULL);
  BITMAPINFOHEADER bih = {0};//位图信息头   
  bih.biBitCount = 16;//每个像素字节大小   
  bih.biCompression = BI_RGB;   
  bih.biHeight = height;//高度   
  bih.biPlanes = 1;   
  bih.biSize = sizeof(BITMAPINFOHEADER);   
  bih.biSizeImage = 0;// width*height*2;//图像数据大小   
  bih.biWidth = width;//宽度   
  BITMAPFILEHEADER bfh = {0};//位图文件头   
  bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);//到位图数据的偏移量   
  bfh.bfSize = bfh.bfOffBits + width*height*2;//文件总的大小   
  bfh.bfType = (WORD)0x4d42;   
  BITMAPINFO bi={0};
  bi.bmiHeader=bih;
  dstBmp=CreateDIBSection(hdcDst, (BITMAPINFO*)&bi, DIB_RGB_COLORS, (void **)&DIBdata, NULL, 0);
  SelectObject(hdcDst, dstBmp);
  SelectObject(hdcSrc, bitmap);
  BitBlt(hdcDst, 0, 0, width, height, hdcSrc, 0, 0, SRCCOPY);
  CFile file(_T("image.bmp"),CFile::modeCreate|CFile::modeReadWrite);
  file.Write(&bfh,sizeof(bfh));
  file.Write(&bih,sizeof(bih));
  file.Write(DIBdata,width*height*2);
  file.Close();
  }
  delete []DDBdata;
TQ_guoxixiao 发表于 2012-5-14 16:25:44
参考看我们的代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-16 16:37 , Processed in 2.038471 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表