Вопрос

Использование GDI + для рисования текста на стекле:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

Вы заметите, что вытягивает текст включенного ClearType очень Плохо на стекле:

alt text

Но со стеклом отключено текст, конечно, нарисовать штраф:

alt text

К способу сравнения здесь Сглаживание шрифта против псевдонима:

alt text

И вот Нет сглаживания шрифта:

alt text

Примечание: Сглаживание шрифта не выглядит лучше, чем на самом деле, потому что StackoverFlow изменяет изменение изображений на вашем мониторе.

Как мне рисовать текст Cleartype на стекле?

Примечания

  • Win32 родной
  • не .NET (т.е. родные)
  • не WinForms (т.е. родные)
  • GDI + (т.е. родные)

Какую марку предлагает, состоит в том, что вы не можете почтить предпочтения пользователя для рендеринга текста (т.е.SystemDefault«. ClearType не работает на стекле, и вы не можете использовать его.

Другими словами, если вы рендерируете на стекле, вы должны переопределить рендеринг текста с:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

В противном случае вы должны оставить TextRenderingHint по умолчанию TextRenderingHintSystemDefault.

Смотрите также

Это было полезно?

Решение

Проблема присущи к тому, как выполняется рисунок. Весь ваш текст рисуется на черном фоне, затем композитирован на стеклянный фон; Полупрозрачный сглаживание шрифта сочетается с черным, чтобы сделать рядом с черным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top