2012-04-09 3 views
1

GDI +를 사용하여 이미지 위에 텍스트를 그려 넣으려고 시도하지만 DrawString (...)을 사용하면 텍스트가 있고 그 뒤에는 여러 가지 문자 (일본어처럼 보일 수도 있음)가 있습니다. 이 문자는 DrawString을 사용할 때만 나타나며 비트 맵을 파일에 저장하여 알 수 있습니다. 아무도 이것이 무엇을 일으킬 수 있는지 알고 있습니까? 내 GDI 코드는Graphics :: DrawString이 기타 문자를 그리는 이유는 무엇입니까?

#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 함수의 설명서를 읽어야합니다.

두번째 파라미터 같아야 문자열 배열의 문자 수를 지정

정수. 문자열이 Null로 끝나면 길이 매개 변수를 -1로 설정할 수 있습니다.

관련 문제