VC++2008中基于对话框GDI+的图像显示
来源:互联网 发布:软件项目管理软件书籍 编辑:程序博客网 时间:2024/05/21 03:18
我们知道在VC++中一般只可以显示BMP格式的图像,要显示其他格式的图片往往显得有些力不从心,用GDI+能够使问题得到很好的解决。关于GDI+是个什么东西,我不去多说了,大家谷歌一下就会知道。
首先在VC++2008中进行GDI+的配置:
1.在项目属性中添加GDI+静态链接库:
新建一个基于对话框的项目,在项目中选择【项目】→【×××属性】(×××是当前项目的名称)
按如下所示的步骤操作:
现在完成了“Debug”模式下的GDI+的配置,此时Debug模式下生成的程序就能正常编译了。要想在Release模式下也能正常编译,只要选择上面对话框左上角【配置】下的Release选项,然后重复刚才的添加方法即可。
2.添加必要代码:
(1)打开“解决方案资源管理器“,打开“stdafx.h”文件,在其中添加如下代码(添加到本文件的末尾):
#include "gdiplus.h"
using namespace Gdiplus;
(2)打开“类视图”,选中应用程序类“C×××App”(×××是当前项目的名称),为其添加两个成员变量:
类型变量名GdiplusStartupInputm_GdiplusStartupInputULONG_PTRm_GdiplusToken(3)在C×××App类的InitInstance函数中添加如下代码:
- //GDI+图像库初始化
- GdiplusStartup(&m_GdiplusToken,&m_GdiplusStartupInput,NULL);
- // TODO: 在此添加专用代码和/或调用基类
- GdiplusShutdown(m_GdiplusToken);
- return CWinApp::ExitInstance();
这样配置工作就全部结束了。
完成配置我们就可以用GDI+显示图像了
我们可以定义一个显示图像的函数:
- void C×××Dlg::DrawImg(CString c_path)
- {
- Invalidate();//擦除上一次的图像
- UpdateWindow();
- int width,height;
- float rate;//等比例缩小的比例参数
- CDC* pDC=GetDC();
- Graphics graph(pDC->GetSafeHdc());
- Image* image=Image::FromFile(c_path.AllocSysString());//c_path为图像的路径
- width=image->GetWidth();
- height=image->GetHeight();
- CRect rect;
- GetClientRect(rect);
- rate=(float)width/(float)height;//宽度和高度的比例
- if(height>rect.Height())
- {
- graph.DrawImage(image,0,0,(int)(rate*rect.Height()),rect.Height());
- ReleaseDC(pDC);
- }
- else
- {
- graph.DrawImage(image,0,0);
- ReleaseDC(pDC);
- }
- }
通过上述方法我们可以显示任何一种格式的图像,并且可以等比例调整图像的大小,保证图像不变形。
转自:http://blog.csdn.net/cghver/article/details/6603725
- VC++2008中基于对话框GDI+的图像显示
- VC++2008中基于对话框GDI+的图像显示
- 基于VC.NET的GDI+图像处理
- 基于VC.NET的GDI+图像处理(1)
- 基于VC.NET的GDI+图像处理(2)
- 基于GDI+的图像处理软件制作(VC)
- 基于VC.NET的GDI+编程之CImage(VC图像处理新招)
- GDI+ 中Image::FromStream ,用流的方式显示图像
- 基于VC.NET的GDI+图像处理(1) --http://blog.csdn.net/oskycar/archive/2008/04/01/2242151.aspx
- VC中使用GDI+显示图片
- VC对话框中显示网页
- VC对话框中显示网页
- vc 基于对话框实现工具条提示显示
- vc 基于对话框实现工具条提示显示
- GDI实现图像的简单显示特效
- GDI+(图像的显示和保存)
- MFC对话框的picture控件中显示IplImage*格式图像
- 在MFC中调用GDI+显示图像Mat图像
- gbrt(gbdt)源码分享
- Java中的TCP/UDP网络通信编程
- hdu 2846
- OANET(二):Qt安装
- hdu 1251
- VC++2008中基于对话框GDI+的图像显示
- 最新的技术趋势
- javascript 实现左移右移上移下移(厦门_小鱼儿_^1^)
- Tomcat配置SSL协议 支持https
- WINCE系统启动时自动运行应用程序
- 程序跳转
- 【Java常用类库】_Runtime类
- SD卡SPI模式下FatFs与znFat文件系统速度比较
- configure -h 参数详解