我正在用 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);
我从代码中删除了一些错误检查以使其更短。
提前致谢 :)