通过capGetVideoFormat来设置采集的参数,
bmpinfo.bmiHeader.biWidth= 176;
bmpinfo.bmiHeader.biHeight= 144;
然后capSetVideoFormat保存.
可以获得176x144的图片,也能正常预览.停止摄像头,再打开时,设置上面两个参数为352x288.
就会报错.
断点指在RunModalLoop函数内.如果不理这个错误,重新运行程序.再直接获取352x288的也正常.
切换到176x144,大部分时候也正常.偶尔会报和上面一样的错误.但从176x144切换到352x288肯定会报错.切换的方法是,先停止捕获,发消息让窗口关闭.
通过一个参数来控制赋不同的值.郁闷了好久了,麻烦各位指出哪里有问题?
bmpinfo.bmiHeader.biWidth= 176;
bmpinfo.bmiHeader.biHeight= 144;
然后capSetVideoFormat保存.
可以获得176x144的图片,也能正常预览.停止摄像头,再打开时,设置上面两个参数为352x288.
就会报错.
断点指在RunModalLoop函数内.如果不理这个错误,重新运行程序.再直接获取352x288的也正常.
切换到176x144,大部分时候也正常.偶尔会报和上面一样的错误.但从176x144切换到352x288肯定会报错.切换的方法是,先停止捕获,发消息让窗口关闭.
通过一个参数来控制赋不同的值.郁闷了好久了,麻烦各位指出哪里有问题?
http://dev.csdn.net/article/74/74565.shtm
断点指在RunModalLoop函数内,捕获窗口的消息循环哪出问题了?父子窗体交付 一些系统级的消息,比如 WM_PALETTECHANGED、WM_QUERYNEWPALETTE,只被发送到顶层(top-level)和overlapped窗口。如果一个捕获窗体是一个资窗体,那它的父窗口应该来转寄这些消息。 同样地,假如父窗口尺寸改变了,它可能需要发送一个通知消息给捕获窗口。相反,如果捕获视频尺寸变化了,捕获窗口可能需要发一个通知消息给父窗口。最简单的管理方法是让捕获窗口的尺寸等于捕获视频流的尺寸,随时把改变的尺寸告诉给父窗口。
bmpinfo.bmiHeader.biWidth= 176;
bmpinfo.bmiHeader.biHeight= 144;
bmpinfo.bmiHeader.biSizeImage=(double)176*(double)144*(double)3;另外,VFW已经过时了,现在已被DirectShow代替