大家好:  请问如何从摄像头中截取一帧图象,直接显示在一image控件里?  网上搜到的例子都是直接保存在文件里的,但我不想保存在文件里,而是直接在一图形控件里显示,如何解决?  以下只是保存到一个文件里。
  SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar(SaveDialog1.FileName)));  希望大家帮帮忙,谢谢!

解决方案 »

  1.   

    用 directshow ,打开摄像头,添加一个 IBasicVideo 类型的Filter 
    然后用 GetCurrentImage 接口方法填充定义好的缓冲区,再将其转换为 BitmapFileHeader,写入到位图中,最后用GDI,或,GDI+画出位图 如果你已经取得位图的DIB,那就更容易了,通过DIB 取得 HBitmap 和调色板,再转换为位图,最后再画
      

  2.   

    你那个不就是视频截取吗?截取分2种,一种是类似QQ截取图象,有弊端.弊端也就是我说的第二种第二种,在缩小的视频框里截取拖拉一段线框,截取出来的是真实的大小,远超你那个线框大小.非你目视看到线框的那么豆腐大的图片能截就能存.呵呵.我花1周才写2种.还是后一种比较好...第一种比较垃圾.如果你设备2048*1536 的分辨率,你的视频画面大过你的电脑屏幕.第二种,不管你多大,显示320*240或者640*480,1024*768 我都可以任意支持,自由截取.我想要的实际大小.API提供的几个函数也真不好用,我自己写的去实现第二种方式
      

  3.   

    你可以使用VIDEOCAP23组件,这个组件封装了vfw的功能。  videocap1.SaveToClipboard;//改组件有个保存图像到剪贴版的功能
      image1.Picture.LoadFromClipboardFormat();//从剪贴版装入图像
      

  4.   

    一般厂家都会提供一个dll的,里面应该有现成的函数
    我以前做过类似的,就是用现成的。
    我用的是海康威视