我抓的图为什么是黑色 VC

来源:百度知道 编辑:UC知道 时间:2024/06/19 07:40:27
long lWidth;
long lHeight;
TCHAR m_szFileName[MAX_PATH];// 位图文件名称
CSampleGrabberCB( )
{
strcpy(m_szFileName, "\donaldo.bmp");
}
STDMETHODIMP_(ULONG) AddRef() { return 2; }
STDMETHODIMP_(ULONG) Release() { return 1; }
STDMETHODIMP QueryInterface(REFIID riid, void ** ppv)
{
if( riid == IID_ISampleGrabberCB || riid ==IID_IUnknown )
{
*ppv = (void *) static_cast<ISampleGrabberCB*> ( this );
return NOERROR;
}
return E_NOINTERFACE;
}
STDMETHODIMP SampleCB( double SampleTime, IMediaSample * pSample )
{
return 0;
}
STDMETHODIMP BufferCB( double dblSampleTime, BYTE * pBuffer, long lBufferSize )
{
if( !bOneShot )
return 0;
if (!pBuffer)
return E_POINTER;
SaveBitmap(pBuffer, lBufferSize);
bOneShot = FALSE;
return 0;
}
//创建位图文件
BOOL SaveBitm

gz

因为你的系统设置是32位的,8位的是灰度图像,~

用Sample Grabber抓到一个sample后,打印出sample里的内容,看看是sample本身就是黑的,还是保存文件时出了错。先这样debug一下,可以快点找到问题。
另外,DirectShow的东西最好找找相关的论坛,在这里解决的机会不是太大。