2010-02-22 123 views
4

如何在圖像上繪製文本(使用設置字體和大小)並將其保存爲JPEG?C++ windows位圖繪製文本

例如

CBitmap bitmap; 
    bitmap.CreateBitmap(width, height, 1, 32, rgbData); 

這裏我想提請位圖一些文字:

CImage image; 
    image.Attach(bitmap); 

    image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatJPEG); 

回答

3
CBitmap bitmap; 
CBitmap *pOldBmp; 
CDC MemDC; 

CDC *pDC = GetDC(); 
MemDC.CreateCompatibleDC(pDC); 
bitmap.CreateCompatibleBitmap(pDC, width, height); 

pOldBmp = MemDC.SelectObject(&MyBmp); 

CBrush brush; 
brush.CreateSolidBrush(RGB(255,0,0)); 

CRect rect; 
rect.SetRect (0,0,40,40); 
MemDC.SelectObject(&brush); 

MemDC.DrawText("Hello",6, &rect, DT_CENTER); 
MemDC.SetTextColor(RGB(0,0,255)); 
GetDC()->BitBlt(0, 0, 50, 50, &MemDC, 0, 0, SRCCOPY); 

//When done, than: 
MemDC.SelectObject(pOldBmp); 
ReleaseDC(&MemDC); 
ReleaseDC(pDC); 

bitmap.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatJPEG); 

試試這個代碼片段

+0

感謝,並在那裏我可以設置字體和大小? – 2010-02-22 10:48:12

+0

lav好的,我發現,非常感謝! – 2010-02-22 10:55:54

+0

當我畫亞美尼亞文<畫圖,爲什麼?我設置Courier AM字體 CFont字體; \t font.CreatePointFont(80,「Courier AM」); \t memDC.SelectObject(font); – 2010-02-22 11:45:26