VC 中怎样将用 DirectDraw处理过的图像输出到BMP格式文件里?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC 中怎样将用 DirectDraw处理过的图像输出到BMP格式文件里?相关的知识,希望对你有一定的参考价值。

VC 中怎样将用 DirectDraw处理过的图像输出到BMP格式文件里

参考技术A 我是通过CreateFile建立BMP文件;
然后设置位图文件头, 写入位图文件头;
接着,写入图片信息;
最后,写入位图文件内容。

比如,我的BMP数据在m_pFrame缓冲区中,通过下面函数来保存文件
BOOL SaveImage(LPCTSTR szBmpFile)

DWORD dwWritten;
HANDLE hFile = CreateFile(szBmpFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (hFile == INVALID_HANDLE_VALUE) return FALSE;

// 设置位图文件头, 写入位图文件头
BITMAPFILEHEADER bmpFileHeader;
memset( &bmpFileHeader, 0, sizeof(bmpFileHeader));
bmpFileHeader.bfType = 'MB';
bmpFileHeader.bfSize = sizeof(bmpFileHeader) + m_nFramelen + sizeof(BITMAPINFOHEADER);
bmpFileHeader.bfOffBits =sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER);
WriteFile( hFile, &bmpFileHeader, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);

// 写入图片信息
WriteFile( hFile, &m_pBmp->bmiHeader, sizeof(BITMAPINFOHEADER), &dwWritten, NULL);

// 写入位图文件内容
WriteFile( hFile, (LPCVOID)m_pFrame, m_nFramelen, &dwWritten, NULL );
CloseHandle( hFile );

return TRUE;

以上是关于VC 中怎样将用 DirectDraw处理过的图像输出到BMP格式文件里?的主要内容,如果未能解决你的问题,请参考以下文章

用VC++ 怎样把图像输出保存成jepg或bmp图像

VC6.0中怎样根据操作在图像控件中显示图片

用VC怎样获取USB摄像头图像,最好有代码

opencv中如何将从视频中抓取的帧释放掉

vc中DirectShow捕捉的图片怎样保存为BMP文件?

matlab 鼠标指针坐标怎样显示