Практическое руководство. Сглаживание текста
Обновлен: Ноябрь 2007
Сглаживанием называют "смягчение" неровных границ графических элементов и текста для улучшения их внешнего вида или повышения удобочитаемости. Управляемые классы GDI+ позволяют выводить на экран высококачественный сглаженный текст, а также текст низкого качества. Обычно более качественная визуализация требует больших затрат вычислительных ресурсов, чем менее качественная. Для задания уровня качества отображения текста следует установить свойство TextRenderingHint объекта Graphics равным одному из значений перечисления TextRenderingHint.
Пример
В следующем примере кода текст прорисовывается с двумя различными уровнями качества.
На следующем рисунке показан результат выполнения этого кода.
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))
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));
Компиляция кода
Предыдущий пример кода предназначен для работы с Windows Forms, для него необходим объект PaintEventArgse, передаваемый в качестве параметра обработчику события PaintEventHandler.