Новый FreeType 2.7

С очередным обновлением Arch Linix обновилась и библиотека для отображения шрифтов FreeType. При обновлении пакета с версией библиотеки 2.7 система рекомендовала обратить внимание на файл /etc/profile.d/freetype2.sh. Файл такого содержания:

# Subpixel hinting mode can be chosen by setting the right TrueType interpreter
# version. The available settings are:
#
#     truetype:interpreter-version=35  # Classic mode (default in 2.6)
#     truetype:interpreter-version=38  # Infinality mode
#     truetype:interpreter-version=40  # Minimal mode (default in 2.7)
#
# There are more properties that can be set, separated by whitespace. Please
# refer to the FreeType documentation for details.

# Uncomment and configure below
#export FREETYPE_PROPERTIES="truetype:interpreter-version=40"

Как видно из содержимого файла, у нас есть возможность выбора одной из трех версий интерпретатора инструкций TrueType. Версия 40 – это новинка, которая появилась в 2.7 и является дефолтной. Как утверждают разработчики, она еще и работает быстрее. Версия 38 – это код от проекта Infinality (добавлено для удобства пользователей, т.к. некоторым нравится этот рендеринг, хотя проект больше не развивается). И версия 35 – это вариант отрисовки из ветки 2.6 (я от него сразу отказался, в ветке 2.6 была возможность сделать как в 2.5 – я так и сделал).

Ну что ж. Незамедлительно были проверены все три версии. И я остался недоволен! Понятное дело что должно быть по другому, но как-то уж совсем вырвиглазно.

Поразмыслив маленько, решил, что разработчики FreeType не стали бы так кардинально портить отрисовку шрифтов, поэтому следует проверить что там с настройками fontconfig. Прежде всего внимательно прочитал информацию от разработчиков о новой версии The new v40 TrueType interpreter mode .

Поскольку основные изменения затронули субпиксельный хинтинг, поигрался с режимами hintstyle. Оказалось с моим hintfull выглядело гораздо хуже рекомендуемого hintslight.

Поигрался и с другими параметрами. В общем все что рекомендуют: включать antialias, hinting, ставить hintslight и lcddefault, выглядит очень и очень неплохо. Единственное не стоит включать autohint. Без него лучше.

Вот мой local.conf с настройками:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">

  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>

  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>

  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="lcdfilter">
    <const>lcddefault</const>
  </edit>

 </match>
</fontconfig>

Параметр rgba для субпиксельного отображения подбирается в зависимости от типа монитора. Тип монитора можно определить на этой тестовой странице The Lagom LCD monitor test pages.

В итоге включен стандартный режим для 2.7 и настройки как рекомендуют, без автохинтинга. Шрифты выглядят очень хорошо. А если, как утверждают разработчики, еще и новая версия работает быстрее предыдущих, то это просто замечательно!


Комментарии

  1. (#)   Твоя Изжога:

    с автохинтом шрифт намного чётче


Оставить комментарий

Ответ на Новый FreeType 2.7