从设备上下文中得到位图像素
2013-04-26 14:34
387 查看
void CCDCBMPView::OnDraw(CDC* pDC) { pDC->TextOut(100, 30,"弃我去者,昨日之日不可留;乱我心者,"); pDC->TextOut(60, 50,"今日之日多烦扰。长空万里送秋雁,对此可以"); pDC->TextOut(60, 70,"酣高楼。蓬莱文章建安骨,中间小谢又青发。"); pDC->TextOut(60, 90,"具怀逸兴壮思飞,欲上青天揽明月。抽刀断水"); pDC->TextOut(60,110,"水更流,举杯消愁愁更愁。人生在世不称意,"); pDC->TextOut(60,130,"明朝散发弄扁舟。");CBitmap bmp; bmp.CreateCompatibleBitmap(pDC,400,200); //创建位图 CDC memDC; memDC.CreateCompatibleDC(pDC); //创建内存上下文 memDC.SelectObject(&bmp); //位图选入设备 memDC.BitBlt(0,0,400,200,pDC,0,0,SRCCOPY);BITMAP bInfo; bmp.GetBitmap(&bInfo); int szPanel = 0; if (bInfo.bmBitsPixel<16) szPanel = pow(2,bInfo.bmBitsPixel)*sizeof(RGBQUAD); BITMAPINFO* pBitInfo = (BITMAPINFO*) LocalAlloc(LPTR,sizeof(BITMAPINFO)+szPanel); pBitInfo->bmiHeader.biBitCount = bInfo.bmBitsPixel; pBitInfo->bmiHeader.biClrImportant = 0; pBitInfo->bmiHeader.biCompression = 0; pBitInfo->bmiHeader.biHeight = bInfo.bmHeight; pBitInfo->bmiHeader.biPlanes = bInfo.bmPlanes; pBitInfo->bmiHeader.biSize = sizeof(BITMAPINFO); pBitInfo->bmiHeader.biSizeImage = bInfo.bmWidthBytes* bInfo.bmHeight; pBitInfo->bmiHeader.biWidth = bInfo.bmWidth; pBitInfo->bmiHeader.biXPelsPerMeter = 0; pBitInfo->bmiHeader.biYPelsPerMeter = 0;char* pData = new char[bInfo.bmWidthBytes*bInfo.bmHeight]; GetDIBits(memDC.m_hDC,bmp,0,bInfo.bmHeight,pData,pBitInfo,DIB_RGB_COLORS);BITMAPFILEHEADER FileHeader; FileHeader.bfType = 0x4d42; //BM FileHeader.bfReserved1 = 0; FileHeader.bfReserved2 = 0; FileHeader.bfSize = sizeof(BITMAPFILEHEADER); FileHeader.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFO)+szPanel;CFile file; file.Open("E:\\bmp.bmp",CFile::modeCreate|CFile::modeReadWrite); file.WriteHuge(&FileHeader,sizeof(BITMAPFILEHEADER)); file.WriteHuge(pBitInfo,sizeof(BITMAPINFO)); file.WriteHuge(pData,bInfo.bmWidthBytes*bInfo.bmHeight); file.Close();LocalFree(pBitInfo); delete pData;
相关文章推荐
- 设备上下文(DC)与内存设备上下文中的位图与画刷属性的一些零碎
- 《绘图前设置:像素格式——PIXELFORMATDESCRIPT、设备上下文、渲染上下文》
- 从GDI+的Bitmap对象得到设备无关位图句柄
- 位图,设备上下文和BitBlt
- 关于memory device context内存设备上下文和位图
- PhoneGap得到手要设备信息
- 从设备环境获取位图
- VC编程实现位图处理类(显示位图、加载位图、获取/设置像素点颜色)
- MFC的运行机制 以及 MFC中的DC、CDC、HDC、句柄、设备上下文(整理)
- flash位图技术研究篇(7):像素粒子
- 什么是设备上下文
- 启动页面和各设备的宽高比及像素
- CodingTrip - 携程编程大赛 (预赛第二场)1001剪刀石头布&1003 位图像素的颜色
- 嵌入式设备的上下文感知电源管理框架(论文阅读笔记)
- 得到HBITMAP句柄保存位图
- android中得到屏幕的高宽(像素)
- CSS检测高像素密度屏幕设备的样式
- GDI 字体 设备上下文 绘图
- Android中Bitmap位图像素的提取和修改
- Android 设备与软件开发中关于像素密度 分辨率的问题