텍스트로 앤티앨리어싱

Windows GDI+는 텍스트를 그리기 위한 다양한 품질 수준을 제공합니다. 일반적으로 더 높은 품질의 렌더링은 낮은 품질의 렌더링보다 처리 시간이 더 많이 걸립니다.

품질 수준은 Graphics 클래스의 속성입니다. 품질 수준을 설정하려면 Graphics 개체의 Graphics::SetTextRenderingHint 메서드를 호출합니다. Graphics::SetTextRenderingHint 메서드는 Gdiplusenums.h에서 선언된 TextRenderingHint 열거형의 요소 중 하나를 받습니다.

GDI+는 Windows XP 및 Windows Server 2003 이상 버전에서만 사용할 수 있는 Microsoft ClearType 디스플레이 기술을 기반으로 하는 기존의 앤티앨리어싱 및 새로운 종류의 앤티앨리어싱을 제공합니다. ClearType 스무딩은 노트북의 모니터 및 고품질 플랫 데스크톱 디스플레이와 같은 디지털 인터페이스가 있는 컬러 LCD 모니터의 가독성을 향상시킵니다. CRT 화면의 가독성도 다소 향상되었습니다.

ClearType은 LCD 스트라이프의 방향과 순서에 따라 달라집니다. 현재 ClearType은 RGB 순서가 지정된 세로 줄무늬에 대해서만 구현됩니다. 디스플레이가 어떤 방향으로든 방향을 지정할 수 있는 태블릿 PC를 사용하거나 가로에서 세로로 전환할 수 있는 화면을 사용하는 경우 문제가 될 수 있습니다.

다음 예제에서는 두 가지 품질 설정으로 텍스트를 그립니다.

FontFamily  fontFamily(L"Times New Roman");
Font        font(&fontFamily, 32, FontStyleRegular, UnitPixel);
SolidBrush  solidBrush(Color(255, 0, 0, 255));
WCHAR       string1[] = L"SingleBitPerPixel";
WCHAR       string2[] = L"AntiAlias";

graphics.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel);
graphics.DrawString(string1, -1, &font, PointF(10.0f, 10.0f), &solidBrush);

graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
graphics.DrawString(string2, -1, &font, PointF(10.0f, 60.0f), &solidBrush);
            

다음 그림에서는 이전 코드의 출력을 보여 줍니다.

문자의 가장자리가 들쭉날쭉한 문자열과 부드러운 가장자리가 있는 문자열의 스크린샷