想抓取摄像头图片,
用vc,vfw做的,查到单帧捕获的函数如下:
capGrabFrameNoStop(m_hCapWnd);
// 截获当前图像
capEditCopy(m_hCapWnd);
// 将图像拷贝到剪贴板
但不知如何保存的到.bmp文件中,各位高手请赐教.
用vc,vfw做的,查到单帧捕获的函数如下:
capGrabFrameNoStop(m_hCapWnd);
// 截获当前图像
capEditCopy(m_hCapWnd);
// 将图像拷贝到剪贴板
但不知如何保存的到.bmp文件中,各位高手请赐教.
http://www.codeproject.com/system/DigitalCameraConn.asp
// Create the Sample Grabber.
IBaseFilter *pGrabberF = NULL;
hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void**)&pGrabberF);
if (FAILED(hr))
{
// Return an error.
}
hr = pGraph->AddFilter(pGrabberF, L"Sample Grabber");
if (FAILED(hr)
{
// Return an error.
}
ISampleGrabber *pGrabber;
pGrabberF->QueryInterface(IID_ISampleGrabber, (void**)&pGrabber);
//Set the Media Type
AM_MEDIA_TYPE mt;
ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
mt.majortype = MEDIATYPE_Video;
mt.subtype = MEDIASUBTYPE_RGB24;
hr = pGrabber->SetMediaType(&mt);
// Set one-shot mode and buffering.
hr = pGrabber->SetOneShot(TRUE);
hr = pGrabber->SetBufferSamples(TRUE);pControl->Run(); // Run the graph.
// Find the required buffer size.
long cbBuffer = 0;
hr = pGrabber->GetCurrentBuffer(&cbBuffer, NULL);
char *pBuffer = new char[cbBuffer];
if (!pBuffer)
{
// Out of memory. Return an error code.
}
hr = pGrabber->GetCurrentBuffer(&cbBuffer, (long*)pBuffer);