我正在使用C#编写一个程序来连接摄像头并对其进行一些图像处理。
我有一个可以使用win32 API(avicap32.dll)连接到摄像头并向其发送消息以将其发送到剪贴板的工作应用程序。问题是,尽管在画图中可以访问,但从程序中读取它会导致空指针。
这是我用于连接摄像头的代码:
mCapHwnd = capCreateCaptureWindowA("WebCap", 0, 0, 0, 320, 240, 1024, 0);
SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0);
SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0);
这是我用来复制图像到剪贴板的方法:
SendMessage(mCapHwnd, WM_CAP_GET_FRAME, 0, 0);
SendMessage(mCapHwnd, WM_CAP_COPY, 0, 0);
tempObj = Clipboard.GetDataObject();
tempImg = (System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap);
为了缩短代码,我删除了一些错误检查。