Сглаживание шрифтов
Сравним различные способы сглаживания:
![Слева обычное сглаживание, справа — включена специальная программа](/f/cleartype/gdi_final_big.png)
Субпиксельное сглаживание
Каждый пиксель состоит из трёх сегментов (R-красный, G-зелёный, B-голубой). Несмотря на то, что сегменты цветные, их можно задействовать для увеличения горизонтального разрешения экрана. Например, если в пикселях разрешение экрана 800*600, то в субпикселях — 2400*600; это позволяет рисовать более плавные линии по сравнению с 800*600. Однако, это «даёт свободу» только по горизонтали (для рисования вертикальных и наклонных линий). Поэтому горизонтальные линии обычно вписаны строго в пиксельную сетку (при увеличении они чисто чёрные):
![Состав пикселя и принцип субпиксельного сглаживания](/f/cleartype/sub-pixel.png)
Порядок сегметов в пикселе может различаться у разных мониторов. Все примеры в этой статье приводятся для
Предыстория
Много раз, глядя на шрифты в ОС Windows XP, я удивлялся, почему в системе нет дополнительных настроек отрисовки. Есть только «стандартное сглаживание» (буэээ) и cleartype (неплохое). Последнее появилось в XP, а в третьем сервис-паке появился доп. экран настройки этого cleartype:
![Настройка сглаживания шрифтов под Виндой](/f/cleartype/cleartype_big.png)
Апдейт. В Висте и Семёрке, кстати, ничего не изменилось.
Но всё равно это «буэээ», потому что в результате принудительного вписывания каждой горизонтали или вертикали в пиксельную сетку пробелы между буквами скачут, и форма букв коверкается.
Поиски вывели меня на программу GDI++ (легко ищется в Гугле). Её написали Японцы: у них иероглифы, в которых может быть куча штрихов. Все штрихи надо красиво и читабельно отобразить. Прога сидит в трее и имеет много готовых шаблонов сглаживания:
![Настройка GDI++](/f/cleartype/program_gdi_big.png)
Я привыкал к этой программе несколько дней, то включая, а то выключая опять. В итоге серьёзно на неё подсел, и теперь системное сглаживание кажется мне уродством. Особенно в режиме программирования и чтения сайтов:
![Сверху — cleartype, снизу — GDI++](/f/cleartype/gdi_primer_1.png)
У GDI++ есть небольшая проблема: размытие мелких шрифтов. Это легко решается увеличением системного шрифта (в настройках Винды и во всех программах).
Сглаживание в браузерах
Первым браузером на Винде, который позаботился о проблеме шрифтов, был Сафари. Но шрифты в нём безбожно мажутся. Обратите внимание на букву «ч» в слове «ночных». Только Винда её отобразила хорошо:
![Смотрим на букву Ч в разных режимах Сафари](/f/cleartype/safari-xp_big.png)
Как видно, ширина штрихов «скачет» во всех режимах. Методы Сафари хорошо бы подошли, если бы штрихи были как минимум
Фаерфокс использует системный рендеринг, и GDI++ благополучно перехватывает инициативу. Сайты выглядят красиво:
![Слева — XP, справа — GDI++](/f/cleartype/gdi_primer_2_big.png)
Апдейт. В последних версиях Фаерфокса GDI++ не работает. Чтобы заработало, надо отключить аппаратное ускорение: Инструменты → Настройки → Дополнительные → Общие, и там снять галку «По возможности использовать аппаратное ускорение».
Смотрите также
Комментарии
Дальнейшие комментарии закрыты. По всем вопросам пишите или звоните мне лично, см. раздел Контакты