陆老师,来看看???

CoolSoftBird 2004-09-03 03:24:52
陆老师,我按你的例子,该写了抓图,但是保存为bmp文件,打不开,
IBasicVideo *mBasicVideo = NULL;
g_pGraph->QueryInterface(IID_IBasicVideo, (void **)&mBasicVideo);
long bitmapSize = 0;
mBasicVideo->GetCurrentImage(&bitmapSize,0);
BOOL pass = false;
BYTE *buffer = new BYTE[bitmapSize];
mBasicVideo->GetCurrentImage(&bitmapSize,(long*)buffer);
BITMAPFILEHEADER hdr;
LPBITMAPINFOHEADER lpbi;
lpbi = (LPBITMAPINFOHEADER)buffer;




int ihandle;
HANDLE hf = CreateFile(
"c:\\cc.bmp", GENERIC_WRITE, FILE_SHARE_READ, NULL,
CREATE_ALWAYS, NULL, NULL );

BITMAPFILEHEADER bfh;
memset( &bfh, 0, sizeof( bfh ) );
bfh.bfType = 'MB'; //((WORD) ('M' << 8) | 'B')
bfh.bfSize = sizeof( bfh ) + bitmapSize + sizeof( BITMAPINFOHEADER );
bfh.bfOffBits = sizeof( BITMAPINFOHEADER ) + sizeof( BITMAPFILEHEADER );

DWORD dwWritten = 0;
long hr = WriteFile( hf, &bfh, sizeof(bfh), &dwWritten, NULL );


BITMAPINFOHEADER bih;
memset( &bih, 0, sizeof( bih ) );
bih.biSize = sizeof( bih );
bih.biWidth = long(320);
bih.biHeight = long(240);
bih.biPlanes = 1;
bih.biBitCount = 24;

dwWritten = 0;
WriteFile( hf, &bih, sizeof( bih ), &dwWritten, NULL );

dwWritten = 0;
WriteFile( hf, buffer, bitmapSize, &dwWritten, NULL );
CloseHandle( hf );



delete buffer;
mBasicVideo->Release();
...全文
60 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CoolSoftBird 2004-09-04
  • 打赏
  • 举报
回复
问题解决,,,
CoolSoftBird 2004-09-04
  • 打赏
  • 举报
回复
文件可以存了,但是颜色就变灰了,,
CoolSoftBird 2004-09-03
  • 打赏
  • 举报
回复
陆老师我是按你书上敲了例子,但是存盘文件bmp,不能打开,,,,

我没有用CFile存,
用WriteFile,写到bmp文件中去的,,
happydeer 2004-09-03
  • 打赏
  • 举报
回复
你参考一下《directshow实务精选》音视频采集一章的avcap例子。自己比较一下就知道了。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧