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