2012-04-09 63 views
1

我想用GDI +在圖像上繪製文本,但是,我注意到DrawString(...)有我的文本,後面跟着幾個misc字符(它看起來可能是日文)。這些字符只在使用DrawString時才顯示,我注意到通過將Bitmap保存到文件中。有誰知道可能是什麼原因造成的?我的GDI代碼是爲什麼Graphics :: DrawString繪製misc字符?

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

回答

3

你應該閱讀Graphics::DrawString函數的文檔。

第二個參數應該是:

整數,指定字符串數組中的字符數。如果字符串爲空終止,則length參數可以設置爲-1。

相關問題