1,、配置GDI+ VS2010自帶GDI+,直接使用,。 (1)首先要添加頭文件和庫(kù) #pragma comment( lib, "gdiplus.lib" ) #include "gdiplus.h" using namespace Gdiplus; 建議添加到stdafx.h里 (2)然后添加全局變量 static ULONG_PTR m_gdiplusToken;
該成員變量用來(lái)保存GDI+被初始化后在應(yīng)用程序中的GDI+標(biāo)識(shí),。 (3)在OnInitDialog()之類的初始化函數(shù)中,添加: Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); (4)結(jié)束后卸載GDI+: 可以手動(dòng)重載析構(gòu)函數(shù)然后加上這句: Gdiplus::GdiplusShutdown(m_gdiplusToken); 配置方法很多博客都有說(shuō),,也不知道源頭在哪,,恕我不標(biāo)注來(lái)源了。
2,、給圖片添加漢字 1 Image image( L"D:\\pic\\abc.jpg" ); //加載圖片 2 Graphics imageGraphics(&image); //通過(guò)Image對(duì)象創(chuàng)建一個(gè)繪圖句柄,,使用這個(gè)句柄對(duì)圖片進(jìn)行操作 3 imageGraphics.SetTextRenderingHint(TextRenderingHintAntiAlias); 4 WCHAR string[ ] = L"姓名"; //要寫的字 5 FontFamily fontFamily(L"楷體"); 6 Gdiplus::Font myFont(&fontFamily, 60, FontStyleRegular, UnitPoint); //第二個(gè)是字體大小 7 SolidBrush blackBrush(Color(255, 0, 0, 0)); //半透明+文字RGB顏色 8 PointF school_site((REAL)100, (REAL)100);//文字放置的像素坐標(biāo) 9 StringFormat format; 10 format.SetAlignment(StringAlignmentNear); //文本排列方式,即在對(duì)應(yīng)位置居中,、靠左,、靠右 11 //wcscpy_s(string, CT2CW(str)); //如果使用MFC中的CString,需要這樣轉(zhuǎn)換成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 );//保存添加了漢字的圖像
根據(jù)需要改變上述代碼,,就可以任意位置添加任意字體任意大小的字了,。 當(dāng)然也可以不讀取圖片,直接建立圖片,。 |
|
來(lái)自: 筱肆 > 《網(wǎng)文收藏》