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、給圖片添加漢字

 1 Image  image( L"D:\\pic\\abc.jpg" );          //加載圖片
 2  Graphics imageGraphics(&image);              //通過Image對象創建一個繪圖句柄,使用這個句柄對圖片進行操作 
 3  imageGraphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
 4  WCHAR string[ ] = L"姓名";                   //要寫的字
 5  FontFamily fontFamily(L"楷體"); 
 6  Gdiplus::Font myFont(&fontFamily, 60, FontStyleRegular, UnitPoint); //第二個是字體大小
 7  SolidBrush blackBrush(Color(255, 0, 0, 0));  //半透明+文字RGB顏色
 8  PointF school_site((REAL)100, (REAL)100);//文字放置的像素坐標
 9  StringFormat format;                         
10  format.SetAlignment(StringAlignmentNear);    //文本排列方式,即在對應位置居中、靠左、靠右
11  //wcscpy_s(string, CT2CW(str));              //如果使用MFC中的CString,需要這樣轉換成WCHAR
12  imageGraphics.DrawString(string, wcslen(string), &myFont, school_site, &format, &blackBrush );//把string繪制到圖上
13  CLSID pngClsid; 
14  GetEncoderClsid( L"image/jpeg", &pngClsid); 
15  image.Save(L"D:\\pic\\abc_1.jpg", &pngClsid, NULL );//保存添加了漢字的圖像

 

根據需要改變上述代碼,就可以任意位置添加任意字體任意大小的字了。

當然也可以不讀取圖片,直接建立圖片。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM