MFC 获得Btimap的高度 GetBitmap() 输出bitmap
来源:互联网 发布:linux拷贝文件夹 编辑:程序博客网 时间:2024/06/07 06:15
首先加载一张位图:可以使用2中方法,一种是利用CBitmap的LoadBitmap.还有一种是使用LoadImage.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//也可以从硬盘上加载,从硬盘加载的时候,LoadImage(“F:\\123.bmp”)就可以了。
BITMAP tempBmp; //这里要定义一个位图结构体,和刚才加载的位图关联起来,就能得到位图的高度,宽度等信息
bitmap.GetBitmap(&tempBmp);
int width = tempBmp.bmWidth; //高度
int height = tempBmp.bmHeight; //宽度
//使用完后,要删除位图对象:
bitmap.DeleteObject();
输出一个位图:
比如在OnDraw中:
OnDraw()
{
CDC *pDC = GetDC();
CDC dcBack;
dcBack.CreateCompatibleDC(NULL); //创建背景DC
CBitmap bitmap,*pOldBitmap;
BTIMAP tempBmp;
bitmap.LoadBitmap(IDC_BITMAP1);
bitmap.GetBitmap(&tempBmp); //获得bitmap的位图结构
pOldBitmap = (CBtimap*)dcBack.SelectObject(&bitmap); //将位图选入背景DC,作为后续输出
pDC->BitBlt(0,0,tempBmp.bmWidth,tempBmp.bmHeight,&dcBack,0,0,SRCCOPY); //BitBlt是原始输出,不会放大位图
// pDC->StretchBlt(0,0,tempBmp.bmWidth*2,tempBmp.bmHeight * 2,&dcBack,0,0,tempBmp.bmWidth,tempBmp.bmHeight,SRCCOPY); // 将位图放大1倍输出
//删除使用对象
// dcBack.SelectObject(pOldBitmap); 这一句,我发现加上选择为空以后,程序就会报错,不知道什么原因,注释掉后,就没有问题了。
dcBack.DeleteDC();
bitmap.DeleteObject();
}
函数原型:int GetBitmap( BITMAP*pBitMap );
BITMAP数据结构:
typedef struct tagBITMAP { /* bm */ LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits;} BITMAP;
bmType; //位图类型,必须为0bmWidth; //位图宽度bmHeight; //位图高度bmWidthBytes; //每一行像素所在的byte数bmPlanes; //颜色平面数bmBitsPixel; //像素的位数bmBits; //位图内存指针
位图的加载可以2种方式:使用CBitmap的成员函数LoadBitmap。或者使用API函数LoadImage,LoadImage返回的是句柄,需要自己转换为HBITMAP.
- MFC 获得Btimap的高度 GetBitmap() 输出bitmap
- 使用 MediaStore.Images.Media.getBitmap从Uri中获得bitmap以及其缺陷
- __property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap}; __property的用法
- GetBitmap
- 获得控件的高度
- 获得UILable的高度
- Android的Btimap处理大图片解决方法
- Android的Btimap处理大图片解决方案
- android 获得View的高度
- Android 获得控件的高度
- 获得状态栏高度的方式
- jQuery获得内容的高度
- 【MFC】取得bitmap的大小
- Bitmap获取图片的高度与宽度
- android获得Bitmap的三种方法
- 获得Bitmap的三种方法
- Android获得Bitmap的三种方法
- android获得布局的Bitmap对象
- 今天的你能原谅我吗的飞秋爱好者
- J2EE的13个规范概述
- CMainFrame::OnCreate m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) m_wndStatusBar.Create(this)
- 今天的西红柿就跑了的P8U8源码
- MVC
- MFC 获得Btimap的高度 GetBitmap() 输出bitmap
- uva11536 v =^^=不错的水题 我的世界你不懂,不要乱渣渣。。。。。
- 今天的一条条平坦的即时通讯
- 在SQL Server中如何比较两个表的各组数据
- 空间划分与粒子相互作用(interaction) 实例
- sqlserver2008怎么用户登录出现18456
- NYOJ 610 定长覆盖
- 【c++】std vector的介绍
- Ubuntu12.04下载android-goldfish-2.6.29