vs2008中使用gdi+

1.新建一个mfc工程

2.在stdafx.h文件中加入以下几行语句:

#include <gdiplus.h>                //
#pragma comment(lib, "gdiplus.lib") //在工程属性中添加亦可
using namespace Gdiplus;            //使用GDI+的命名空间, 若不用的话每次使用Gdiplus时均加上命名空间亦可

3.修改App类

在App类(以下例子中为CTestApp)中增加成员
protected: 
    GdiplusStartupInput m_gdiplusStartupInput; 
    ULONG_PTR m_gdiplusToken;

在BOOL CTestApp::InitInstance()增加以下代码, 必须在dlg.DoModal()前.
GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);

重载CTestApp::ExitInstance()
public: 
virtual BOOL ExitInstance();

BOOL CTestApp::ExitInstance() 

    GdiplusShutdown(m_gdiplusToken); 
    return CWinAppEx::ExitInstance();    //使用基类的ExitInstance(). 
}

4. 现在可以在CTestDlg::OnPaint()中增加以下代码来画图了

CClientDC dc(this);  
Graphics graphics(dc); 
Image image(L"d:/test.jpg"); 
Point pos[] = 

    Point(10, 10), 
    Point(image.GetWidth() + 10, 10), 
    Point(10, image.GetHeight() + 10) 
}; 
graphics.DrawImage(&image, pos, 3); //在平行四边形区域内显示图像

///

*****************************************************************************************

///

在VS2008当中由于自带了GDI+的开发包,所以不需要在安装GDI开发包,这些头文件的位置由VS中的$(WindowsSdkDir)/include自动包含进来了。你可以在vs的命令提示符下使用 echo %WindowsSdkDir%显示该路径。我的电脑上是在C:/Program Files/Microsoft SDKs/Windows/v6.0A/Include。默认vs并没有将gdi的静态库链接文件加进来,所以需要显示链接,编译器指令为#pragma comment(lib, "gdiplus.lib")

下面为使用GDI+的基本代码,功能是将bmp图像转换成jpeg格式的图像。

[cpp:showcolumns] view plaincopy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

  1. // FileTran.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #pragma comment(lib, "gdiplus.lib")
  5. using namespace Gdiplus;
  6. GdiplusStartupInput g_Gdiplus;
  7. ULONG_PTR g_pGdiToken;
  8. int GetCodecClsid(const WCHAR* format, CLSID* pClsid);
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11. GdiplusStartup(&g_pGdiToken, &g_Gdiplus, NULL);
  12. Bitmap* pBmp = Bitmap::FromFile(_T("你的bmp图像路径"));
  13. if (pBmp)
  14. {
  15. CLSID clsid;
  16. int nQuality = 95;
  17. EncoderParameters Encoders;
  18. Encoders.Count = 1;
  19. Encoders.Parameter[0].Guid = EncoderQuality;
  20. Encoders.Parameter[0].Type = EncoderParameterValueTypeLong;
  21. Encoders.Parameter[0].NumberOfValues = 1;
  22. Encoders.Parameter[0].Value = &nQuality;
  23. GetCodecClsid(L"image/jpeg", &clsid);
  24. pBmp->Save(L"tran.jpg", &clsid, &Encoders);
  25. }
  26. GdiplusShutdown(g_pGdiToken);
  27. return 0;
  28. }
  29. int GetCodecClsid(const WCHAR* format, CLSID* pClsid)
  30. {
  31. UINT  codenum = 0;
  32. UINT  size = 0;
  33. ImageCodecInfo* pImageCodecInfo = NULL;
  34. GetImageEncodersSize(&codenum, &size);
  35. if(size == 0)
  36. return -1 ;
  37. pImageCodecInfo = new ImageCodecInfo[size];
  38. if(pImageCodecInfo == NULL)
  39. return -1;
  40. GetImageEncoders(codenum, size, pImageCodecInfo);
  41. for(UINT j = 0; j < codenum; ++j)
  42. {
  43. if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
  44. {
  45. *pClsid = pImageCodecInfo[j].Clsid;
  46. delete []pImageCodecInfo;
  47. return 0;
  48. }
  49. }
  50. delete []pImageCodecInfo;
  51. return -1;
  52. }

vs2008中使用gdi+的设置相关推荐

  1. NUnit在VS2008中的安装使用

    声明:在方法二中图片可以显示不完整,读者可以将图片保存到本地查看.看完再删除了.方法一为转载的.方法二是自己写的. 方法一. 1.从NUnit官网(http://www.nunit.org/index ...

  2. VS2008中代码段(Snippet)及代码段编辑

    网上资源零碎,主要是整理下. 整理的是主要核心内容,完整内容可以看后面标注的原文链接. 代码段是什么 <VS2008中代码段(Snippet)的功能> 在VS2008中,提供了代码段(Sn ...

  3. MFC中的GDI绘图

    MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...

  4. [转]VS2008中开发智能设备程序的一些总结

    结合前几日开发的<全国大坝基础数据库采集端>中的PDA程序开发过程,对VS2008开发智能设备上的程序做个小总结. 1         程序结构 程序中包括四个部分: 1. 系统配置 这个 ...

  5. vs2008中C#3.0语言的新特性

    看了YJingLee's Blog的文章,收获很大,以下文章转自http://www.cnblogs.com/lyj/archive/2008/01/08/1030525.html 总体来说,Visu ...

  6. VS2008中开发智能设备程序的一些总结

    原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...

  7. MFC使用GDI+编程设置

    VC2005"项目/*属性"菜单项,打开项目的属性页窗口,先选"所有配置",再选"配置属性/链接器/输入"项,在右边上部的"附加依 ...

  8. vs2008智能提示jQuery的设置注意事项

    vs2008智能提示jQuery的设置注意事项 分类: C# Jquery2010-01-22 12:04 775人阅读 评论(0) 收藏 举报 首先看一下Visual Studio带给我们的智能感知 ...

  9. vs2008网站模式下不能设置rdlc的数据源

    很郁闷,vs2008中网站中rdlc报表竟然不能设置数据源,必须在工程下才能用. 转载于:https://www.cnblogs.com/shunliy/archive/2009/01/09/1373 ...

最新文章

  1. python-django框架中使用docker和elasticsearch配合实现搜索功能
  2. lambda表达式初步
  3. winform 配置文件的加密解密
  4. java金字塔显示_java控制台输出数字金字塔示例分享
  5. [转]flash在C#中的应用
  6. macOS Monterey 12.4 (21F79) 虚拟机 ISO 镜像
  7. 这8款Android桌面插件,这款 Android 应用,帮你优雅地管理桌面小部件
  8. FreeCAD 导出STL格式文件格式
  9. mysql nlssort_Oracle数据库中文拼音,部首,笔画排序问题,NLS_SORT设置
  10. 【转】关于测试方面的一些文章
  11. Python实例:小游戏20148
  12. IP技术 -- 3 路由器彩光
  13. 用python提取发票扫描件常用的10多个发票信息保存到excel表
  14. 游戏角色写实头发制作
  15. 18种为你的网站引流的好方法
  16. 【嵌套bfs】A - Pushing Boxes POJ - 1475 推箱子
  17. springboot请求put请求
  18. 【BPF入门系列-4】如何在 BPF 程序中正确地按照 PID 过滤?
  19. Python在数据处理方面的优势
  20. 【闲书杂谈】《断舍离》——[日]山下英子

热门文章

  1. HDU-4035 Maze 概率DP
  2. PHP 字符串匹配算法 Sunday算法
  3. HDU 1027 全排列
  4. 【OpenCV】简单高效地访问图像像素
  5. linux 内存 实例,linux内存地址分配(示例代码)
  6. 带格式粘贴至html富文本,防止复制/粘贴将网页样式复制到富文本编辑器
  7. python pip工具命令_转载 Python 安装setuptools和pip工具操作方法(必看)
  8. python语言开发环境搭建_Python开发环境搭建-Go语言中文社区
  9. python字符串 切片_Python切片字符串
  10. c ++递归算法数的计数_计数排序算法–在C / C ++中实现的想法