VS2010 MFC 使用GDI+给图片添加汉字
1、配置GDI+
VS2010自带GDI+,直接使用。
(1)首先要添加头文件和库
#pragma comment( lib, "gdiplus.lib" )
#include "gdiplus.h"
using namespace Gdiplus;
建议添加到stdafx.h里
(2)然后添加全局变量
static ULONG_PTR m_gdiplusToken;
该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识。
(3)在OnInitDialog()之类的初始化函数中,添加:
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
(4)结束后卸载GDI+:
可以手动重载析构函数然后加上这句:
Gdiplus::GdiplusShutdown(m_gdiplusToken);
配置方法很多博客都有说,也不知道源头在哪,恕我不标注来源了。
2、给图片添加汉字
Image image( L"D:\\pic\\abc.jpg" ); //加载图片
Graphics imageGraphics(&image); //通过Image对象创建一个绘图句柄,使用这个句柄对图片进行操作
imageGraphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
WCHAR string[ ] = L"姓名"; //要写的字
FontFamily fontFamily(L"楷体");
Gdiplus::Font myFont(&fontFamily, , FontStyleRegular, UnitPoint); //第二个是字体大小
SolidBrush blackBrush(Color(, , , )); //半透明+文字RGB颜色
PointF school_site((REAL), (REAL));//文字放置的像素坐标
StringFormat format;
format.SetAlignment(StringAlignmentNear); //文本排列方式,即在对应位置居中、靠左、靠右
//wcscpy_s(string, CT2CW(str)); //如果使用MFC中的CString,需要这样转换成WCHAR
imageGraphics.DrawString(string, wcslen(string), &myFont, school_site, &format, &blackBrush );//把string绘制到图上
CLSID pngClsid;
GetEncoderClsid( L"image/jpeg", &pngClsid);
image.Save(L"D:\\pic\\abc_1.jpg", &pngClsid, NULL );//保存添加了汉字的图像
根据需要改变上述代码,就可以任意位置添加任意字体任意大小的字了。
当然也可以不读取图片,直接建立图片。
VS2010 MFC 使用GDI+给图片添加汉字的更多相关文章
- C# 使用 GDI+ 给图片添加文字,并使文字自适应矩形区域
需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小 ...
- VS2010 MFC中 给菜单项添加消息响应函数
久了没用,居然忘记了该怎样给菜单项添加响应函数了~~~~~~~~T_T 特记于此: 1. 在资源视图的Menu里找到自己要添加的菜单,然后输入菜单项. 2. 右击菜单项选属性,设置Popup为Fals ...
- VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)
前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件的创建.CTreeCtrl类的主要成员函数和应用实例. 树形控件的创建 MFC为树形控件提 ...
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...
- VS2010 / MFC + OpenCV 2.4.1打开图片
Windows 7 x64,VS2010 / MFC + OpenCV 2.4.1打开图片显示到Picture控件中. OpenCV 2.2.OpenCV 2.3同样适用. 工具/原料 WinXP / ...
- VS2010 MFC中 单独添加ODBC数据库记录集类(CRecordset)方法
基于VS2010 MFC的项目是之前建好的,后来需要添加数据库. 方法分享于此. 1. 打开自己的项目,项目->添加类. 2. 选MFC ODBC使用者,点右下角的添加. 3. 点数据源. / ...
- VS2010/MFC编程入门教程之目录和总结
鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够.以此教程的知识为基础,学习VS2010/MFC较为深入的内容 ...
- MFC如何在树形图边上添加动态小地图
MFC如何在树形图边上添加动态小地图 https://www.jianshu.com/p/7b1d828bf5db (简书无法识别缩进的...早知道先在博客园发了) (转载请注明出处) 作者:梦镜谷雨 ...
- c++ opencv 3.2 +Mfc VS2015窗体显示图片方法
本文仅涉及一些核心步骤,具体 OpenCV 的配置以及其他的细节问题,请参考 VS2010 / MFC + OpenCV 2.4.1打开图片. 1. 新建 MFC 对话框项目 基于对话框,不使用Uni ...
随机推荐
- Java的Guava
主要是看代码看到了Table这个类,竟然有两个键! http://www.cnblogs.com/peida/p/3183505.html
- JAVA JDBC 各大数据库的连接字符串和连接类
oracle: driverClass:oracle.jdbc.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mys ...
- leetcode938
class Solution: def __init__(self): self.li = [] def midSearch(self,node): if(node != None): self.mi ...
- pycharm专业版(window)安装
1.官网下载 2. 3.直接finlsh 4. 5. https://pan.baidu.com/s/1mQcc98iJS5bnIyrC6097yA 密码:b1c1
- 快速预热Buffer_Pool缓冲池
在之前的版本里,如果一台高负荷的机器重启后,内存中大量的热数据被清空,此时就会重新从磁盘加载到Buffer_Pool缓冲池里,这样当高峰期间,性能就会变得很差,连接数就会很高. 在MySQL5.6里, ...
- MySql DATE_FORMAT函数用法
DATE_FORMAT(date, format) 函数用法 DATE_FORMAT(date, format) 函数根据format字符串格式化date值. 1.把字符串转为日期格式 实例: SEL ...
- How to Pronounce EVERY
How to Pronounce EVERY Share Tweet Share Tagged With: 2-Syllable Everybody should learn the word ‘ev ...
- Haskell语言学习笔记(60)Biapplicative
Biapplicative class Bifunctor p => Biapplicative p where bipure :: a -> b -> p a b (<< ...
- .net数据库连接防注入参数查询 命令执行 读取 备份 导出导入转化XML格式
ADO.NET是一组类库,让我们通过程序的方式访问数据库.SYSTEM.DATA这个类提供了统一的接口访问Oracle MSSQL Access.像SYSTEM.IO类操作文件一样. **connec ...
- mysql 建库建表建用户
1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...