保存客户区数据成BMP图片
2012-11-24 23:29
387 查看
最近弄的
BITMAPINFO bi;//信息头 void *pBits=NULL; CRect rect;//客户区窗口 GetClientRect(m_hWnd,&rect); int nWidth=rect.right; int nHeight=rect.bottom; int x=rect.left; //填充信息头 ZeroMemory(&bi,sizeof(bi)); bi.bmiHeader.biSize=sizeof(bi.bmiHeader); bi.bmiHeader.biHeight=nHeight; bi.bmiHeader.biWidth=nWidth; bi.bmiHeader.biPlanes=1; bi.bmiHeader.biBitCount=24; bi.bmiHeader.biCompression=BI_RGB; bi.bmiHeader.biSizeImage=3*nWidth*nHeight; //拷贝客户区至内存DC HDC hActiveDC=::GetDC(m_hWnd); HDC hActiveWndCompatibleDC=CreateCompatibleDC(hActiveDC); HBITMAP hActiveWndCompactibleBitmap=CreateCompatibleBitmap(hActiveDC,rect.right,rect.bottom); SelectObject(hActiveWndCompatibleDC,hActiveWndCompactibleBitmap); BitBlt(hActiveWndCompatibleDC,0,0,rect.right,rect.bottom,hActiveDC,0,0,SRCCOPY); //保存内存DC HDC hBmpFileDC=CreateCompatibleDC(hActiveWndCompatibleDC); HBITMAP hBmpFileBitmap=CreateDIBSection(hActiveWndCompatibleDC,&bi,DIB_RGB_COLORS,&pBits,NULL,0); SelectObject(hBmpFileDC,hBmpFileBitmap); BitBlt(hBmpFileDC,0,0,nWidth,nHeight,hActiveWndCompatibleDC,0,0,SRCCOPY); CString tempFileName=_T("test.bmp");//目标文件名 HANDLE hFile=CreateFile(tempFileName,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); if(hFile!=INVALID_HANDLE_VALUE) { DWORD dwRet=0; //填充文件头 BITMAPFILEHEADER bmfHeader; ZeroMemory(&bmfHeader,sizeof(bmfHeader)); bmfHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER); bmfHeader.bfSize=bi.bmiHeader.biSizeImage+bmfHeader.bfOffBits; // bmfHeader.bfType='MB'; bmfHeader.bfType=19778; WriteFile(hFile,&bmfHeader,sizeof(bmfHeader),&dwRet,NULL); WriteFile(hFile,&bi.bmiHeader,sizeof(bi.bmiHeader),&dwRet,NULL); WriteFile(hFile,pBits,bi.bmiHeader.biSizeImage,&dwRet,NULL); CloseHandle(hFile); }
相关文章推荐
- 24位RGB数据保存为BMP图片
- [转载] ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- 24位RGB数据保存为BMP图片
- RGB数据保存为BMP图片
- 24位RGB数据保存为BMP图片
- Linux下获取显存一帧数据并保存为bmp图片
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- VC++中客户区保存为BMP图片
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。
- 保存减切板内容为BMP图片 && Clipboard save as bmp......
- 如何在JPG或BMP图片上显示输入的订单数据内容,并在报表打印时显示出来,后台数据库是SQL SERVER 2000 ,先谢了.高分!
- WinCE 获取BMP图片数据
- Java+MySql图片数据保存与读取的具体实例
- bmp图片数据提取
- 截图:截取当前程序的界面,并保存到bmp图片中。
- [android] 数据的异步加载和图片保存