我做一个视频捕捉的程序,用了这里的源码http://ej.bantz.com/video/src/advanced.zip
想直接捕捉一帧存为BMP文件,代码如下:
Dim abcNull As String
Dim MyVar
MyVar = Null
sBmpName = "c:\000.bmp" & Str(MyVar)
capPreview lwndC, True
capGrabFrameNoStop lwndC
capFileSaveDIB lwndC, StrPtr(sBmpName)
问题是怎么存也不成功,capFileSaveDIB要求的文件名指针怎么传呢?strprt,varptr均试过不行,文件名指针VB没办法用吗?查了很多资料都没找到答案,请各位大侠指教!
想直接捕捉一帧存为BMP文件,代码如下:
Dim abcNull As String
Dim MyVar
MyVar = Null
sBmpName = "c:\000.bmp" & Str(MyVar)
capPreview lwndC, True
capGrabFrameNoStop lwndC
capFileSaveDIB lwndC, StrPtr(sBmpName)
问题是怎么存也不成功,capFileSaveDIB要求的文件名指针怎么传呢?strprt,varptr均试过不行,文件名指针VB没办法用吗?查了很多资料都没找到答案,请各位大侠指教!
你先转成byte数组,然后传递第1个元素
capFileSaveDIB不是保存图片用的函数,那是将图片传出到设备无关位图进行保存用的。
你要保存图片应该用capFileSaveAs:
Function capFileSaveAs(ByVal lwnd As Long, szName As String) As Boolean
capFileSaveAs = SendMessageS(lwnd, WM_CAP_FILE_SAVEAS, 0, szName)
End Function
这个函数
更正一下,capFileSaveDIB是用来将图像内容复制到指针所指的内存区域用的。