C++ windows位图绘制文字

标签 c++ mfc text draw

如何在图像上绘制文本(设置字体和大小)并将其保存为 JPEG?

例如

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

这里我想在位图上绘制一些文本:

    CImage image;
    image.Attach(bitmap);

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

最佳答案

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);

试试这个代码片段

关于C++ windows位图绘制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309767/

相关文章:

c++ - 在本地定义的结构中模拟非本地(或自由)变量

c++ - 比 MFC 更好的框架?

file - 使用批处理脚本逐行合并两个文本文件

java - 从文本导入数据

c++ - 使用接受的连接作为套接字 (cpp-netlib)

c++ 和 fastcgi - 上游在读取来自上游的响应 header 时过早关闭 FastCGI stdout

c++ - 如何生成不同对的不等数?

c++ - 如何从 C++/MFC 程序中获取控制台窗口?

c++ - 如何禁用 CListCtrl 选择选项

scala - Scala 和 Spark 中最简单的文本词形还原方法