将24位及32位图像数据保存到位图中
2010-11-23 20:13
316 查看
BOOL SaveImageDataToBMP( LPCTSTR lpFileName, DWORD width, DWORD height, DWORD bits, void* pData ) { if( bits != 24 && bits != 32 ) return FALSE; BITMAPFILEHEADER bfh; ZeroMemory( &bfh, sizeof(BITMAPFILEHEADER) ); bfh.bfType = ((WORD)('M'<<8)|'B'); bfh.bfSize = 0; bfh.bfReserved2 = 0; bfh.bfReserved1 = 0; bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); BITMAPINFO BitmapInfo; BitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); BitmapInfo.bmiHeader.biPlanes = 1; BitmapInfo.bmiHeader.biBitCount = bits; BitmapInfo.bmiHeader.biCompression = BI_RGB; BitmapInfo.bmiHeader.biSizeImage = 0; BitmapInfo.bmiHeader.biXPelsPerMeter = 0; BitmapInfo.bmiHeader.biYPelsPerMeter = 0; BitmapInfo.bmiHeader.biClrUsed = 0; BitmapInfo.bmiHeader.biClrImportant = 0; BitmapInfo.bmiHeader.biWidth = width; BitmapInfo.bmiHeader.biHeight = height; int dwPitch = width * bits / 8; while( dwPitch % 4 != 0 ) dwPitch++; FILE* pFile = _tfopen( lpFileName, _T("wb") ); fwrite( &bfh, sizeof(BITMAPFILEHEADER), 1, pFile ); fwrite( &BitmapInfo, sizeof(BITMAPINFOHEADER), 1, pFile ); fwrite( pData, sizeof(char), height * dwPitch, pFile ); fclose( pFile ); return TRUE; }
相关文章推荐
- 把32位等任意格式图片灰度化并把图像数据保存为文本文件
- matlab imwrite函数保存jpg格式图像丢失数据或改变图像
- matlab批处理多个文件数据及保存多个输出图像的方法及例子
- 把24位和32位BMP位图转为灰色bmp位图
- matlab 读取txt数据并保存为图像
- MATLAB将图像数据以txt文件保存以及从txt文件中读矩阵并显示图像
- 使用gdal读取图像数据,然后用构建gdi+位图显示
- MFC获取rgb图像数据后动态显示及保存图片的方法
- python使用h5py读取mat文件数据,并保存图像
- python中对numpy数组的保存(图像分析image2array后保存数组可用于进一步数据分析)
- 为raw数据添加图像头,并保存为bmp图像(改进)
- 8位、24位、32位图像数据转换
- C++ DirectShow读取摄像头后然后保存图像数据
- vc/mfc获取rgb图像数据后动态显示及保存图片的方法
- DM642学习点滴三:将DSP内存中的图像数据保存为BMP图像
- GDAL 遥感图像处理后的数据保存为图像文件的实现方法
- 将24位真彩色位图保存为256色(8位)位图
- SharedPreference 保存图像数据
- C++ DirectShow读取摄像头后然后保存图像数据
- [OpenGL调试]保存并查看内存中的数据图像