2014-12-20 3 views
1

Windows에서 앤티 앨리어싱을 수행하거나 텍스트 표시를 "돕는"일없이 특정 지점 크기의 비트 맵 글꼴을 사용하여 양식을 작성해야합니다. 이유는 텍스트가 저해상도 디스플레이 (예 : 너비 120 픽셀 및 높이 40 픽셀의 공간이있는 Netduino 기반 비트 맵)에 표시하기위한 비트 맵으로 저장되므로 검정색 "A"를 표시하려면 화면에 회색 픽셀을 추가 할 수없고 글자를 쓸 수 없습니다.WinForm 간단한 원시 비트 맵 글꼴 쓰기?

나는 내가 포함 윈도우 BDF하지 않습니다 알고 있지만이

http://robey.lag.net/2010/01/23/tiny-monospace-font.html

같은 글꼴을 사용할 필요가 내가 필요없는 넌센스의 종류 슈퍼 작은 서체에 대한 참조로 Windows에서 사용하십시오.

C#, Franework 4.5.2를 사용하여. NET에서 순수 볼록하지 않은 비트 맵으로 서체를 내보낼 수 있습니까?

필자는 "Tiny"트루 타입 글꼴을 사용하여 6 포인트에서 비트 맵을 만들었습니다. 생성 된 비트 맵 이미지에서 텍스트가 모두 흰색이 아니라는 것을주의하십시오.

enter image description here

using (var gb = Graphics.FromImage(mybitmap)) 
{ 
gb.PixelOffsetMode = PixelOffsetMode.Half; 
gb.SmoothingMode = SmoothingMode.None; 
gb.InterpolationMode = InterpolationMode.NearestNeighbor; 
gb.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; 
gb.TextContrast = 0; 
gb.Clear(colorbg); 
var fontSize = Convert.ToSingle(6); 
var nowFont = new Font(myfont , fontSize, GraphicsUnit.Pixel); 
TextRenderer.DrawText(gb, "pack my box..." , nowFont , new Point(0, 0), colorforeground); 
} 

감사합니다.

답변

2

Graphics.TextRenderingHint 속성을 TextRenderingHint.SingleBitPerPixelGridFit으로 설정하십시오. 글꼴에 트루 타입 힌팅이 전혀없는 경우에는 SingleBitPerPixel을 사용하는 것이 좋습니다. 어느 앨리어싱 제거도없이 텍스트를 렌더링합니다.