VB6.0 请教VFW连接摄像头问题

resphoina 2010-10-31 07:45:32
我的笔记本有一个内置摄像头,另外用一个USB摄像头做程序,VFW用的不好,现在有一个问题就是开启程序,sendmessage connect 的时候都要弹出选择视频源的对话框,选择后摄像头也不能用,但拔插一次摄像头就不会弹出对话框使用也正常,下一次又有问题了,所以现在每运行一次都要拔插一次摄像头,是怎么回事呢?程序退出时disconnect了,也尝试过禁用内置摄像头,不管用,可是另一台电脑上就没有这个问题。。。
...全文
264 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
resphoina 2010-11-02
  • 打赏
  • 举报
回复
谢谢 问题解决了,win7下得循环driverconnect才行。。。
现在还是人类 2010-11-02
  • 打赏
  • 举报
回复
用 capDriverConnect 就可以判断连接是否成功呀,你没看我给你的代码吗?
cbm6666 2010-11-01
  • 打赏
  • 举报
回复
640 * 480 的图像你要变成1:1 你要变为胖子还是变为瘦子? 维持4:3 依比例缩小才是正道

可以用一个PictureBox 使用 Picture2.PaintPicture '(照相的图片,使用4:3 再缩小)

'*********************************************
Private Declare Function PrintWindow Lib "user32" (ByVal Hwnd As Long, ByVal HDC As Long, ByVal nFlags As Long) As Long

使用一个PictureBox 命名为 Picture1
Set Picture2.Container = Picture1
x1=(picture1.width-picture2.width)\2
y1=(picture1.height-picture2.height)\2
picture2.move x1,y1
Picture1.print "aaaaaa"
Picture1.print "bbbbb"

'PrintWindow到Picture3
PrintWindow Picture1.Hwnd, Picture3.HDC, 0
Printer.PaintPicture Picture3.Image, (Printer.ScaleWidth - Picture3.Width) \ 2, 0, Picture3.Width, Picture3.Height
Printer.EndDoc


dbcontrols 2010-11-01
  • 打赏
  • 举报
回复
Private Sub Picture1_Change()

事件里判断一下是否发生了该事件,发生了就是连上了
resphoina 2010-11-01
  • 打赏
  • 举报
回复
谢谢回复,虽然2L答非所问o(╯□╰)o 不过没有解决问题啊VFW连接时应该怎么写才能确认连上了摄像头呢?
现在还是人类 2010-11-01
  • 打赏
  • 举报
回复
有的摄像头提供 VFW 接口,有的又不提供此接口,这要根据具体的硬件而定。
但通常用 DirectShow 通过设备驱动都能访问到设备。
如果你确定你的设备支持 VFW 接口,那么可以参考一下过程来操作摄像头:
http://blog.csdn.net/SupermanKing/archive/2008/11/02/3207341.aspx
这个范例要注意的是图像采集部分没有进行色彩系统的处理,默认用RGB色彩系统,
现在市场上很多的设备都用 YUY2 色彩系统的,可能要稍微处理一下。如果你的是RGB的设备,
那就直接可以用了。
如果想通用性强一点,建议使用 DirectShow 技术来处理,在 DirectX SDK 中有使用范例。
如果你用的是 Visual Studio 6 系列的开发环境,建议下载 DirectX 8.1 的 SDK 就可以了,
DirectX 9 以上的 SDK .net 的范例较多

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧