【问题标题】:Why is Graphics::DrawString drawing misc characters?为什么 Graphics::DrawString 绘制杂项字符?
【发布时间】:2012-04-09 00:21:32
【问题描述】:

我正在尝试使用 GDI+ 将文本绘制到图像上,但是,我注意到 DrawString(...) 有我的文本,然后是几个杂项字符(看起来可能像日语)。这些字符仅在使用 DrawString 时出现,我注意到通过将位图保存到文件中。有谁知道可能是什么原因造成的?我的 GDI 代码是

#include <windows.h>
#include <Gdiplus.h>
using namespace Gdiplus;

int main(void)
{
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR           gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

    Font* myFont = new Font(L"Times New Roman", 10);
    Bitmap* characterBitmap = new Bitmap(256, 256, PixelFormat32bppARGB);
    Graphics* g = new Graphics(characterBitmap);

    g->Clear(Color::Transparent);

    SolidBrush* myBrush = new SolidBrush(Color::Black);
    g->DrawString(L"TEST", 48, myFont, PointF(0, 0), myBrush);

    CLSID pngClsid;
    GetEncoderClsid(L"image/png", &pngClsid);
    characterBitmap->Save(L"test.png",  &pngClsid, NULL);

    GdiplusShutdown(gdiplusToken);

    return 0;
}

【问题讨论】:

    标签: c++ gdi+ gdi


    【解决方案1】:

    您应该阅读Graphics::DrawString 函数的文档。

    第二个参数应该是:

    整数,指定字符串数组中的字符数。如果字符串以 null 结尾,则长度参数可以设置为 –1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多