vs2008中使用gdi+的设置
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格式的图像。
- // FileTran.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #pragma comment(lib, "gdiplus.lib")
- using namespace Gdiplus;
- GdiplusStartupInput g_Gdiplus;
- ULONG_PTR g_pGdiToken;
- int GetCodecClsid(const WCHAR* format, CLSID* pClsid);
- int _tmain(int argc, _TCHAR* argv[])
- {
- GdiplusStartup(&g_pGdiToken, &g_Gdiplus, NULL);
- Bitmap* pBmp = Bitmap::FromFile(_T("你的bmp图像路径"));
- if (pBmp)
- {
- CLSID clsid;
- int nQuality = 95;
- EncoderParameters Encoders;
- Encoders.Count = 1;
- Encoders.Parameter[0].Guid = EncoderQuality;
- Encoders.Parameter[0].Type = EncoderParameterValueTypeLong;
- Encoders.Parameter[0].NumberOfValues = 1;
- Encoders.Parameter[0].Value = &nQuality;
- GetCodecClsid(L"image/jpeg", &clsid);
- pBmp->Save(L"tran.jpg", &clsid, &Encoders);
- }
- GdiplusShutdown(g_pGdiToken);
- return 0;
- }
- int GetCodecClsid(const WCHAR* format, CLSID* pClsid)
- {
- UINT codenum = 0;
- UINT size = 0;
- ImageCodecInfo* pImageCodecInfo = NULL;
- GetImageEncodersSize(&codenum, &size);
- if(size == 0)
- return -1 ;
- pImageCodecInfo = new ImageCodecInfo[size];
- if(pImageCodecInfo == NULL)
- return -1;
- GetImageEncoders(codenum, size, pImageCodecInfo);
- for(UINT j = 0; j < codenum; ++j)
- {
- if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
- {
- *pClsid = pImageCodecInfo[j].Clsid;
- delete []pImageCodecInfo;
- return 0;
- }
- }
- delete []pImageCodecInfo;
- return -1;
- }
vs2008中使用gdi+的设置相关推荐
- NUnit在VS2008中的安装使用
声明:在方法二中图片可以显示不完整,读者可以将图片保存到本地查看.看完再删除了.方法一为转载的.方法二是自己写的. 方法一. 1.从NUnit官网(http://www.nunit.org/index ...
- VS2008中代码段(Snippet)及代码段编辑
网上资源零碎,主要是整理下. 整理的是主要核心内容,完整内容可以看后面标注的原文链接. 代码段是什么 <VS2008中代码段(Snippet)的功能> 在VS2008中,提供了代码段(Sn ...
- MFC中的GDI绘图
MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...
- [转]VS2008中开发智能设备程序的一些总结
结合前几日开发的<全国大坝基础数据库采集端>中的PDA程序开发过程,对VS2008开发智能设备上的程序做个小总结. 1 程序结构 程序中包括四个部分: 1. 系统配置 这个 ...
- vs2008中C#3.0语言的新特性
看了YJingLee's Blog的文章,收获很大,以下文章转自http://www.cnblogs.com/lyj/archive/2008/01/08/1030525.html 总体来说,Visu ...
- VS2008中开发智能设备程序的一些总结
原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...
- MFC使用GDI+编程设置
VC2005"项目/*属性"菜单项,打开项目的属性页窗口,先选"所有配置",再选"配置属性/链接器/输入"项,在右边上部的"附加依 ...
- vs2008智能提示jQuery的设置注意事项
vs2008智能提示jQuery的设置注意事项 分类: C# Jquery2010-01-22 12:04 775人阅读 评论(0) 收藏 举报 首先看一下Visual Studio带给我们的智能感知 ...
- vs2008网站模式下不能设置rdlc的数据源
很郁闷,vs2008中网站中rdlc报表竟然不能设置数据源,必须在工程下才能用. 转载于:https://www.cnblogs.com/shunliy/archive/2009/01/09/1373 ...
最新文章
- python-django框架中使用docker和elasticsearch配合实现搜索功能
- lambda表达式初步
- winform 配置文件的加密解密
- java金字塔显示_java控制台输出数字金字塔示例分享
- [转]flash在C#中的应用
- macOS Monterey 12.4 (21F79) 虚拟机 ISO 镜像
- 这8款Android桌面插件,这款 Android 应用,帮你优雅地管理桌面小部件
- FreeCAD 导出STL格式文件格式
- mysql nlssort_Oracle数据库中文拼音,部首,笔画排序问题,NLS_SORT设置
- 【转】关于测试方面的一些文章
- Python实例:小游戏20148
- IP技术 -- 3 路由器彩光
- 用python提取发票扫描件常用的10多个发票信息保存到excel表
- 游戏角色写实头发制作
- 18种为你的网站引流的好方法
- 【嵌套bfs】A - Pushing Boxes POJ - 1475 推箱子
- springboot请求put请求
- 【BPF入门系列-4】如何在 BPF 程序中正确地按照 PID 过滤?
- Python在数据处理方面的优势
- 【闲书杂谈】《断舍离》——[日]山下英子
热门文章
- HDU-4035 Maze 概率DP
- PHP 字符串匹配算法 Sunday算法
- HDU 1027 全排列
- 【OpenCV】简单高效地访问图像像素
- linux 内存 实例,linux内存地址分配(示例代码)
- 带格式粘贴至html富文本,防止复制/粘贴将网页样式复制到富文本编辑器
- python pip工具命令_转载 Python 安装setuptools和pip工具操作方法(必看)
- python语言开发环境搭建_Python开发环境搭建-Go语言中文社区
- python字符串 切片_Python切片字符串
- c ++递归算法数的计数_计数排序算法–在C / C ++中实现的想法