Поделиться через


Практическое руководство. Сглаживание текста

Сглаживанием называют "смягчение" неровных границ графических элементов и текста для улучшения их внешнего вида или повышения удобочитаемости. Управляемые классы GDI+ позволяют выводить на экран высококачественный сглаженный текст, а также текст низкого качества. Обычно более качественная визуализация требует больших затрат вычислительных ресурсов, чем менее качественная. Для задания уровня качества отображения текста следует установить свойство TextRenderingHint объекта Graphics равным одному из значений перечисления TextRenderingHint.

Пример

В следующем примере кода текст отрисовывается с двумя различными уровнями качества.

FontFamily fontFamily = new FontFamily("Times New Roman");
Font font = new Font(
   fontFamily,
   32,
   FontStyle.Regular,
   GraphicsUnit.Pixel);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
string string1 = "SingleBitPerPixel";
string string2 = "AntiAlias";

e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
e.Graphics.DrawString(string1, font, solidBrush, new PointF(10, 10));

e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
e.Graphics.DrawString(string2, font, solidBrush, new PointF(10, 60));
Dim fontFamily As New FontFamily("Times New Roman")
Dim font As New Font( _
   fontFamily, _
   32, _
   FontStyle.Regular, _
   GraphicsUnit.Pixel)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim string1 As String = "SingleBitPerPixel"
Dim string2 As String = "AntiAlias"

e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel
e.Graphics.DrawString(string1, font, solidBrush, New PointF(10, 10))

e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias
e.Graphics.DrawString(string2, font, solidBrush, New PointF(10, 60))

На следующем рисунке показан результат выполнения этого примера кода:

Снимок экрана: текст с двумя разными параметрами качества.

Компиляция кода

Приведенный выше пример кода предназначен для использования с Windows Forms и требуется PaintEventArgs e, который является параметром PaintEventHandler.

См. также