OnPaintBackground에서 제공되는 Graphics 객체를 사용하여 TextRenderer.DrawText()를 사용하면 텍스트가 완벽 해 보입니다. 내 자신의 비트 맵을 만들고 내 비트 맵에서 얻은 Graphics 객체를 사용하면 내 텍스트가 끔찍 해 보입니다. 비트 맵의 배경색이 아닌 검은 색을 사용하여 텍스트에 앤티 앨리어싱을 적용한 것처럼 보입니다. Graphics.DrawString()을 사용하면이 문제를 피할 수 있지만이 메서드는 커닝 문제가 심각합니다. 어떻게해야합니까? 비트 맵의 내용을 사용하여 TextRenderer.DrawText()를 올바르게 앤티 앨리어스로 변환하려면 어떻게해야합니까?Bitmap의 TextRenderer.DrawText 대 OnPaintBackground
은 끔찍 : NOT 컨트롤의 표면에, 비트 맵에
Bitmap bmp = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(g, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
좋아 보인다,하지만이 렌더링 할 :
protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(e.Graphics, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
차이점은 무엇입니까?
'TextRenderer faster' ?? 확실합니까? 이 기사는 GDI +보다 느리다 고 말했습니다 : http://theartofdev.com/2014/04/21/text-rendering-methods-comparison-or-gdi-vs-gdi-revised/ – qakmak
@qakmak [9 년 전 ] (http://blogs.msdn.com/b/cjacks/archive/2006/05/19/602021.aspx)하지만 변경되었을 수도 있습니다. 링크 된 기사의 코드는 내 컴퓨터에서 훨씬 빨라지는 DrawString을 보여줍니다. –