2009-03-10 3 views
3

일본어 퀴즈 프로그램을 작성 중이며 Windows XP 용 동아시아 언어 팩을 사람들이 설치하지 않도록하고 싶습니다. 텍스트 그리기에 GDI +를 사용하고 있습니다. 무료 유니 코드 글꼴을 다운로드하여 텍스트를 그려 보았습니다. 내 컴퓨터에서 동아시아 팩이 설치된 상태에서 테스트했는데 다운로드 한 글꼴을 사용하여 올바르게 일본어 문자를 표시했지만 언어 팩이없는 다른 컴퓨터에서는 제대로 작동하지 않았습니다.Windows XP에서 동아시아 언어 팩을 설치하지 않고 GDI +를 사용하여 일본어 텍스트를 표시하는 데 도움이 필요합니다.

이 작업을 수행하는 방법에 대한 제안을 찾고 있습니다. 이 프로그램은 매우 단순하며 Win32 API, GDI + 및 STL 만 사용하여 C++로 작성되었습니다. 가능하다면 나는이 도서관들에 충실하고 싶다. 유니 코드 #가 정의되어 있습니다. 나는 기본적으로 텍스트를 그리기 위해 사용하고

코드는 아래에 붙여 :

#include <gdiplus.h> 
using namespace Gdiplus ; 

Graphics * gi ; 

PrivateFontCollection _fonts ; 
_fonts.AddFontFile(fontFilename) ; 
Font * currentFont = new Font(fontName, fontSize, FontStyleRegular, UnitPoint, &_fonts) ; 

std::wstring text = L"Some text" ; 
gi->DrawString(text.c_str(), (INT)text.size(), currentFont, rectangle, &format, &brush) ; 
+0

c_str() 메서드를 호출하면 신중하게 만들어진 일본어 유니 코드 문자열이 횡설수설 해집니다. –

+0

아니요, 그렇지 않습니다. 거기서 당신을 비난 할 수는 없으며, 시험의 정의가 빠져 있습니다. 그것은 std :: wstring이 될 것입니다. – MSalters

+0

미안하지만, 나는 할 수있는 한 "여분의"재료를 많이 남기려고했다. 예, 텍스트는 std :: wstring입니다. 나는 그 정보를 포함하도록 질문을 편집 할 것입니다. – Bakanekobrain

답변

1

내가 잘못되었습니다. 일본어 문자가 포함 된 글꼴을 사용하는 경우 동아시아 언어 팩이 설치되지 않은 경우에도 Windows XP에서 올바르게 표시됩니다.

동아시아 언어 팩이 설치되어 있고 글꼴이 일본어 문자를 지원하지 않는 경우 Windows는 글꼴과 가장 가까운 것으로 생각되는 두 글꼴 중 하나를 선택합니다. 이로 인해 내가 사용하고있는 글꼴에는 일본어 글꼴이 포함되어 있다고 생각하게되었습니다. 글꼴과 시스템 글꼴을 바꿀 때 문자가 그려지는 방식이 바뀔 것이기 때문입니다.

Microsoft는 Meiryo Collection Version 5.00이라는 일본어 글꼴을 무료로 설치할 수 있습니다. 여기에 더 많은 일본어 글꼴이 나열된 page도 있습니다. 나열된 글꼴의 유일한 문제점은 라이센스가 명확하지 않다는 것입니다.

1

이 솔루션은 매우 간단합니다. 폰트를 발송하고 싶지 않고 사용할 수있는 글꼴을 믿을 수 없기 때문에 사용하고 싶은 모든 문자의 이미지를 제공해야합니다. JPEG는 사진 (작은 그라디언트가 많이 있음)을 목표로하므로 PNG를 사용하는 것이 좋습니다

+0

여러 가지 크기와 색상의 텍스트가 필요하므로 사전 렌더링 된 문자를 사용하면 잘 작동하지 않습니다. – Bakanekobrain

0

문제를 완화하는 데 도움이되는 Lucida Sans 유니 코드라는 글꼴이 있습니다.

관련 문제