1

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;
}
4

1 に答える 1

3

関数のドキュメントを読む必要がありGraphics::DrawStringます。

2 番目のパラメーターは次のようにする必要があります。

文字列配列の文字数を指定する整数。文字列が NULL で終了している場合は、長さパラメーターを –1 に設定できます。

于 2012-04-09T01:16:35.197 に答える