2010-02-22 122 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