2010-02-22 3 views
4

Как я могу нарисовать текст (с настройкой шрифта и размера) на изображении и сохранить его как JPEG?C++ windows bitmap draw text

Например

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

Спасибо, и где я могу установить шрифт и размер ? –

+0

lav ok, я нахожу, большое спасибо! –

+0

И КОГДА Я ЧЕРЕЗ АРМЯНСКИЙ ТЕКСТ <ЭТО ЧЕРЕЗ ???? , Зачем ? i установить шрифт Courier AM CFont font; \t font.CreatePointFont (80, "Courier AM"); \t memDC.SelectObject (font); –