2010-07-13 2 views
5

System.Drawing.Graphics 클래스와 DrawString() 메서드를 사용하여 이미지에 텍스트를 렌더링합니다.System.Drawing.Graphics.DrawString()에서 자간 수정

정확하게 픽셀 단위의 픽셀이 기존 이미지와 일치하도록이 이미지의 텍스트를 매우 구체적인 방식으로 생성해야합니다.

문제는 DrawString()에 의해 생성 된 텍스트가 기존 이미지의 텍스트와 다른 커닝을 사용한다는 것입니다. 가장 좋은 추측은 문자 당 약 0.5 - 1 픽셀입니다.

이 네임 스페이스와 메서드를 사용하는 동안 커닝을 수정할 수 있다면 누구에게 말해 줄 수 있습니까?

또한이 글꼴은 우리가 사용하고있는 사용자 지정 글꼴이며이 글꼴을 오픈 형식 (원본 이미지가 사용 된)에서 트루 유형으로 변환해야했습니다. 이 단계에서 커닝이 수정되었을 수 있습니까? 더 정확하게 - -하지만 종종 방식에 호환되지 않는 방식으로 응용 프로그램 개발자가 이러한 기능을 사용하려면

답변

3

http://blog.stevex.net/rendering-text-using-the-net-framework/

이 문제는 텍스트의 커닝이 다르게 측정된다.

솔루션 :

ExtTextOut은 커닝 이런 종류의 작업을 수행 할만큼 똑똑하지, 그래서 당신은이 문제를 가지고 있지 않습니다. 불행하게도 .NET 프레임 워크에는 되돌릴 수있는 텍스트 그리기 기능이 없으므로 이전 동작을 얻는 유일한 방법은 P/Invoke를 통해 GDI의 ExtTextOut 함수를 사용하는 것입니다.

링크에는 몇 가지 예제 코드가 있습니다. 도움이 되길 바랍니다!