Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
Главная » Статьи » Статьи о Linux [ Добавить статью ]

Шрифты в Linux (часть 2)

Принципы формирования цветного изображения на мониторе

Цветное изображение на дисплее монитора формируется из пикселов, а каждый пиксел состоит из компонентов трёх цветов — красного, зелёного и синего (red, green, blue), каждый из таких компонентов называется субпикселом. Существует несколько различных вариантов геометрии субпикселов, самые главные из них — это: ЭЛТ телевизора, ЭЛТ монитора, жидкокристаллический экран. Субпикселы на них располагаются следующим образом:

Изображение:LinuxFonts-display-types.png

Особенность целовеческого зрения такова, что при достаточно маленьких размерах субпикселов глаз перестаёт различать отдельные красно-сине-зелёные компоненты и мозг формирует из них полноцветное изображение как бы смешивая три цвета в нужной пропорции в зависимости от яркости каждого цветового компонента.

На LCD-экране пикселы и субпикселы располагаются в строгом геометрическом порядке: каждый пиксел имеет прямоугольную форму и состоит в свою очередь из трёх вертикально расположенных субпикселов прямоугольной формы. Таким образом, на экране размером 1024×768 пикселов физически располагается 3072×768 раздельно управляемых светящихся элементов. Во всей оставшейся части статьи мы будем говорить именно об LCD-экранах.

⚠
Изображения в данном разделе предназначены для просмотра только на LCD-мониторах, на CRT-мониторах эффект не будет совпадать с описанным!

Каждый цвет отдельного пиксела получается путём «смешивания» трёх цветов субпикселов в разных пропорциях. Пропорция задаётся уровнем яркости субпиксела. Чёрный цвет получается при полностью погашенных субпикселах, белый — при полностью включенных, чистый красный цвет получается при полностью погашенных синем и зелёном субпикселе (уровень яркости красного субпиксела при этом определяет яркость итогового красного цвета), а жёлтый цвет получается смешиванием красного и зелёного в равных пропорциях.

Изображение:LinuxFonts-lcd-colors-example-1.png

При выбранном подходе серый цвет получается смешиванием в равных долях красного, зелёного и синего цветов субпикселов и при использовании монохромного сглаживания экран LCD-монитора при большом увеличении выглядит приблизительно так:

Изображение:LinuxFonts-lcd-colors-greyscale-sample-1.png

Такой способ формирования цветного изображения позволяет добиваться интересных эффектов. Рассмотрим следующую иллюстрацию (её нужно обязательно рассматривать на LCD-мониторе):

Изображение:LinuxFonts-lcd-colors-example-2.png

На рисунке изображены шесть параллельных линий. Первые три линии красного, зелёного и синего цвета соответственно, четвёртая белого цвета, а пятая и шестая состоят из сегментов разных цветов. В построении первых трёх линий задействовано только по одному из субпикселов, в четвёртой линии — все субпикселы, по этой причине четвёртая линия кажется визуально шире, чем первые три, хотя все они одинаковой ширины — один пиксел. Пятая линия также шириной в один пиксель, однако в каждом сегменте задействован только один субпиксел, в результате чего линия кажется неровной (физически так и есть, линия состоит из трёх сегментов, каждый из которых сдвинут вправо относительно предыдущего на один пиксель). Шестая линия имеет ширину два пиксела и состоит из двух трёхсегментных линий.

Давайте рассмотрим этот рисунок в масштабе 8:1.

Изображение:LinuxFonts-lcd-colors-example-3.png

Вы можете сами проделать эту операцию в любом графичесок редакторе, чтобы убедиться, что на этих двух иллюстрациях представлено одинаковое изображение. Теперь рассмотрим, как это избражение рисуется на экране LCD-монитора.

Изображение:LinuxFonts-lcd-colors-example-4.png

В верхней правой части видно, что смежными сегментами оказываются субпиксели, принадлежащие двум соседним пикселам: слева синий, справа красный. Для глаза эти два соседних сегмента сливаются в один цвет, в результате чего на экране получается линия пурпурного цвета. Также видно, откуда берётся пустой промежуток между двумя соседними линиями.


Основы субпиксельного рендеринга

Субпиксельным рендерингом в общем случае называется тип рендеринга, использующий особенности физического формирования изображения из субпикселов. А субпиксельное сглаживание базируется на особенностях человеческого зрения: на маленьких объектах глаз лучше различает контраст яркостей, чем контраст цветов. На практике это выражается в том, что экран рассматривается не как набор пикселов (как это происходит, например, в графическом редакторе), а как набор субпикселов; при этом горизонтальное разрешение экрана увеличивается втрое. После «субпиксельного» отрисовывания производится коррекция яркости субпикселов, чтобы максимально подавить видимые глазу цветные переходы.

⚠
Субпиксельное сглаживание вполне удовлетворительно работает для большинства людей, однако люди с повышенным чувством цвета могут видеть яркие цветные точки на границах отрендеренных областей.

Изначально алгоритм субпиксельного рендеринга был разработан и запатентован IBM[15], позднее был использован фирмой Microsoft в операционной системе Windows XP под названием ClearType. Подробнее о принципах работы субпиксельного сглаживания можно прочитать в статье википедии о ClearType.

весь текст страницы, начиная с этого места и до конца документа, 
является устаревшим, и будет в ближайшее время удалён

Xft

Xft — это библиотека для X-приложений, основанная на FreeType. В отличие от Core X Renderer, работает на стороне X-клиента, а не X-сервера. По сути это означает, что если вы запустите X-приложение на другом физическом сервере, а в качестве дисплея укажете свой локальный, то рендеринг шрифтов будет происходить на другом сервере, а вам будут передаваться по сети, условно говоря, картинки с уже отрисованным текстом. И ещё одно важное следствие, которое многие упускают — Xft не зависит от конфигурации X-сервера! Шрифты для использования в Xft задаются совершенно отдельно от него; приложение, использующее Xft будет выглядеть одинаково, независимо от того, на каком именно X-сервере оно отображается.

Почти все современные X-приложения явно или косвено используют для рендеринга шрифтов библиотеку Xft. Core X Renderer уже сильно устарел, и не поддерживает многих популярных в настоящее время фич, например, сглаживания шрифтов. Как я уже говорил, Xft использует непосредственно для растеризации шрифтов библиотеку FreeType. FreeType — это высокоэффективная, свободная, расширяемая и переносимая библиотека для работы с разнообразным форматами шрифтов. Она есть для всех платформ и входит во все дистрибутивы. Однако ввиду свободности некоторые возможности библиотеки по умолчанию отключены и их нужно включать самостоятельно и пересобирать библиотеку, чтобы их задействовать. Эти возможности реализуют запатентованные способы рендеринга, а так как на территории России патенты на алгоритмы не действуют, можно на это забить и всегда эти фичи включать. Подробные инструкции, как это сделать, доступны в сети в огромном количестве, а в некоторых дистрибутивах, например, в Debian, эти возможности уже включены в бинарные пакеты, поэтому нет необходимости их пересобирать. А вот пользователям Fedora Core придётся это сделать.

Настройка Xft

При работе с Xft необходимо помнить один очень важный момент — настройки шрифтов при работе с данной библиотекой локальны по отношению к приложению. Это значит, что можно сконфигурировать систему так, что каждое приложение сможет пользоваться своей собственной конфигурацией Xft, и хотя в большинстве операционных систем все приложения используют одни и те же параметры, всегда можно сделать так, что некоторые из них будет иметь свой собственный набор шрифтов и их настроек. Иногда это очень удобно.

Для доступа к конфигурации Xft существует специальная библиотека, которая называется fontconfig. Можно сказать, что Xft использует FreeType для растеризации по правилам, которые ей поставляет fontconfig. Поэтому вся оставшаяся часть статьи будет посвящена подробному описанию процесса конфигурации Xft и использованию fontconfig.

Практически во всех дистрибутивах конфигурационные файлы fontconfig располагаются в каталоге /etc/fonts. Самым главным конфигурационным файлом является /etc/fonts/fonts.conf — это XML-файл, в котором прописаны пути к файлам шрифтов, а также задаются правила растеризации шрифтов. Любой пользователь системы может также прописать свои собственные параметры в своём личном файле ~/.fonts.conf. При запуске приложения, Xft для получения правил обработки шрифтов и самих шрифтов вызывает нужные функции из библиотеки fontconfig, которая в свою очередь считывает настройки из главного конфигурационного файла (а также из других файлов, если это потребуется). Для того, чтобы узнать, как изменения конфигурации повлияли на отображение шрифтов, необходимо в общем случае перезапустить приложение.

Некоторые операционные системы предоставляют программные средства для упрощения процесса конфигурации. В качестве примера приведу команду dpkg-reconfigure fontconfig-config, с которой неизбежно сталкивается каждый пользователь Debian:

Изображение:LinuxFonts-Debian-fontconfig.png

Данная команда позволяет глобально сконфигурировать несколько весьма важных параметров, однако при этом полностью скрывает смысл производимых действий. Поэтому далее программы для конфигурации шрифтов рассматриваться не будут, а речь пойдёт исключительно о ручной настройке.

Чтобы полностью осознать и понять суть производимых действий, я рекомендую по мере чтения статьи выполнять вручную все, о чём вы прочитаете — это сильно помогает пониманию. Чтобы не сломать что-нибудь в главном конфигурационном файле, рекомендую проделывать все действия в специально созданном для этого окружении: Xft можно заставить использовать другой файл конфигурации, отличный от /etc/fonts/fonts.conf, делается это при помощи переменной окружения FONTCONFIG_FILE, которой необходимо присвоить полный путь (например, /home/user/my-own-fonts.conf) до нового файла. Если переменная FONTCONFIG_FILE установлена, то все X-программы, использующие Xft, будут искать файл конфигурации именно там, а не в /etc/fonts/fonts.conf. Рекомендую также создать каталог, например, ~/local-font-sandbox и все действия (создание новых файлов, например) проводить только внутри него. Для этого открываем новый терминал, заходим внутрь этого каталога, создаём файл fonts.conf и присваиваем переменной FONTCONFIG_FILE полный путь до него (export FONTCONFIG_FILE=`pwd`/fonts.conf), не забываем про экспорт переменной, так как все программы, которые будут использовтать данный файл, мы будем запускать именно из этого терминала. В качестве тестовой программы можно взять любую, использующую Xft, например, kword — текстовый редактор из набора KOffice, нам он полезен тем, что в нём можно одновременно отображать много текста, отрисованного разными шрифтами.

Формат файла fonts.conf

Лирическое отступление


Главным источником информации о структуре этого файла является man fonts-conf, там написано абсолютно всё, что необходимо для ручного конфигурирования. Поэтому я не буду тут его целиком публиковать, а расскажу подробно о базовых принципах, после чего вы сможете сами всё вручную написать и в полной мере оцените, насколько это мощный инструмент — fontconfig. Также полезно иногда поглядывать в главный файл /etc/fonts/fonts.conf, там тоже встречаются комментарии.


fonts.conf представляет собой текстовый XML-файл, его DTD можно обычно найти в файле /etc/fonts/fonts.dtd, там же в комментариях можно узнать много интересного, что не вошло в man fonts-conf. Итак, минимальный fonts.conf выглядит так:

 version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
</fontconfig>

Если мы попробуем запустить с этим файлом наше тестовое приложение, мы получим вместо букв вот такие квадратики (ведь в файле не описаны ни шрифты, ни правила их рендеринга):

Изображение:LinuxFonts-Basic-fontconfig-res.png

Также можно нарваться на вот такое сообщение:

No fonts found; this probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org

Оно означает, что приложение не хочет работать, если шрифты не определены. Поэтому первым шагом мы добавим несколько TrueType-шрифтов в наш тестовый каталог и пропишем их в нашем конфиге.

Итак, создаём каталог ~/my-fonts-sandbox/ttfonts, куда скопируем несколько файлов шрифтов в формате TrueType, например, DejaVuSans.ttf и DejaVuSerif.ttf, данные шрифты совершенно свободны к использованию, они входят в любой дистрибутив и их без проблем можно скачать из сети. Путь к каталогу со шрифтами задаётся тегом dir, каталог просматривается рекурсивно, то есть нет необходимости указывать также подкаталоги. Можно добавлять несколько таких тегов, в каждом указывается один каталог. Проделаем все эти шаги, после чего наш тестовый файл выглядит так:

 version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/my-fonts-sandbox/ttfonts</dir>
</fontconfig>

Запускаем kword и видим, что шрифты в нём отображаются, однако если мы попытаемся изменить шрифт набранного текста, мы увидим, что выбор ограничивается только лишь двумя этими шрифтами: DejaVuSans и DejaVuSerif.

Изображение:LinuxFonts-Kword-basic-fonts.png

На рисунке видно, как выглядит окно kword в моей системе, когда ему доступно всего два шрифта. Обратите внимание, что шрифты отрисовываются в сглаженном виде, в вашем дистрибутиве всё может быть иначе.

Теперь напишем более сложный конфигурационный файл:

 version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/home/cancel/my-fonts-sandbox/ttfonts</dir>
<match target="font">
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
</fontconfig>

В файле конфигурации содержатся правила интерпретации шрифтов, неформально говоря, это означает, что мы определяем способ отрисовывания шрифта посредством указания, какие именно способы к каким шрифтам применять. В этом примере у нас имеется всего одно правило, заданное в виде тега match, в нём говорится примерно следующее: «Любому запрошенному шрифту запретить использование свойства antialias», то есть сглаживание отключено глобально для всех шрифтов. Всё очень просто, не так ли? Внутри тега match есть тег edit, который предписывает, какое именно свойство отрисовки шрифта изменить и какое значение этому свойству присвоить; в нашем примере это свойство antialias, которому присваивается значение false. Логично и просто.

Лирическое отступление


У тега match возможен единственный атрибут target, он определяет, когда будет выполнено заданное внутри действие. Более подробно об этом написано в комментариях в файле fonts.dtd; там слишком много тонкостей, чтобы их все тут перечислять. Отмечу лишь, что можно относительно безболезненно вообще не указывать этот атрибут, однако можно указать и target="font".

Вы, наверное, уже отметили, что шрифты на скриншоте выглядят не очень хорошо, значит, нужно изменить ещё какие-нибудь атрибуты отрисовки, чтобы стало лучше. Вот об этих атрибутах и поговорим. Но сначала немного теории, а точнее — о различных особенностях отрисовки шрифтов на мониторе. Без этой информации смысл различных опций файла конфигурации останется для вас не совсем ясным.

Способы растеризации шрифтов

Чтобы получить достойно отрисованный векторный шрифт на экране, необходимо указать растеризатору (в нашем случае это FreeType) параметры преобразования символов из векторной формы в растровую. На разных типах мониторов наилучший результат достигается различными наборами таких параметров. Чаще всего пользователи включают сглаживание (antialiasing) шрифтов. Сглаживание производится путём добавления дополнительных пикселов другого цвета или другой яркости, чтобы сгладить резкие переходы между пикселами.

Способы растеризации шрифтов хорошо описаны в этой статье Википедии.

Вот несколько примеров, на всех иллюстрациях в верхнем левом углу нарисовано тестовое слово, в центре — оно же, но увеличенно в четыре раза.

Простейший способ растеризации — это простое преобразование векторных изображений в растровые безо всякой коррекции, выглядит это примерно так:

Изображение:LinuxFonts-Rasterization-simple.png

Простейшее сглаживание достигается путём добавления вокруг каждого пиксела в несглаженном растровом изображении нескольких пикселов с разной степенью прозрачности, обычно более светлых, такой метод называется greyscale antialiasing, я далее буду его называть монохромным сглаживанием. Это позволяет получить более сглаженную, но несколько замыленную картинку:

Изображение:LinuxFonts-Rasterization-antialiasing-without-hinting.png

В качественных шрифтах для каждого глифа добавляются специальные инструкции (хинты, hints), чтобы помочь отрисовать шрифт на устройствах вывода низкого разрешения, например, на экране монитора. Создание качественных хинтов — это весьма трудоёмкий процесс и поэтому хинты присутствуют далеко не в каждом шрифте, однако во всех стандартных шрифтах Windows™ они присутствуют (и ОЧЕНЬ качественные), поэтому они и отрисовываются там так хорошо. Рассмотрим, как будет растеризован библиотекой FreeType шрифт Tahoma (размер 12 пунктов) без использования хинтов:

Изображение:Rasterization-no-hinting.png

Такой метод является самым простым и наименее ресурсоёмким. Однако получаемый результат обычно совершенно непригоден для использования. Однако если мы добавим к полученной растровой картинке эффект простейшего монохромного сглаживания, то получим уже вполне пригодный к использованию метод. Итак, бесхинтовая растеризация плюс сглаживание дают удовлетворительный результат:

Изображение:LinuxFonts-Rasterization-no-hinting-antialias.png

Однако всё равно шрифт отрисовывается не идеально — штрих получается слишком широкий, видны торчащие из шрифта пиксели. Теперь посмотрите на эту же надпись, но выполненную с применением хинтов и без антиалиасинга:

Изображение:LinuxFonts-Rasterization-hinting-full-alias.png

Очень хороший результат: все символы отрисованы симметрично, лишние пикселы ниоткуда не торчат, на экране ЭЛТ-монитора шрифт, отрисованный таким методом будет выглядеть вполне приемлемо и качественно. Монохромное сглаживание ещё больше улучшает качество отрисовки (Tahoma, 12 pt):

Изображение:LinuxFonts-Rasterization-hinting-full-antialias.png

Сравните насколько лучше выглядит результат по сравнению с монохромным сглаживанием без использования хинтов.

Обычно на экране цветного монитора каждый пиксел формируется из трёх цветных фрагментов — красного (red), зелёного (green) и синего (blue). В ЭЛТ-мониторах изображение формируется таким образом, что даже несглаженный шрифт смотрится там вполне удовлетворительно, в основном оттого, что цветные фрагменты, из которых состоит изображение, имеют не совсем правильную прямоугольную форму и несколько размытые границы. На жидкокристалических (LCD) же экранах цветные фрагменты строго прямоугольны и расположены в строгом порядке, поэтому ну них резкие переходы между элементами шрифта заметны очень хорошо, особенно это проявляется на экранах с небольшим разрешением и большим физическим размером, например, на матрице с диагональю экрана 15" и разрешением 800×600 пикселов. На LCD-экране каждый пиксел формируется из трёх вертикальных (чаще всего, но возможно и горизонтальное расположение) прямоугольников красного, зелёного и синего цветов. Варьируя яркость каждого такого субпиксела, можно получить всю гамму цветов. Строгая геометрическая упорядоченности субпикселов используется в характерном именно для LCD-матриц сглаживании — так называемом субпиксельном сглаживании (subpixel antialiasing).

Субпиксельное сглаживание основывается на некоторых особенностях человеческого зрения, а именно — глаз лучше различает яркость очень маленьких объектов, чем цветность. Поэтому для сглаживания резких контуров используются не пикселы целиком, а лишь отдельные его фрагменты — красный, зелёный или синий. На следующей иллюстрации показано результат растеризации с использованием субпиксельного сглаживания:

Изображение:LinuxFonts-Rasterization-hinting-full-antialias-subpixel.png

На увеличенном фрагменте чётко видны цветные пикселы, однако на самой картинке они не очень заметны и в целом отрисовка выглядит более «гладкой», чем при использовании монохромного сглаживания. Обратите внимание, что если вы просматриваете эту страницу на экране ЭЛТ-монитора, вы увидите совершенно иную картину! Всё дело в том, то эта иллюстрация сделана простым масштабированием скриншота, а чтобы совсем понять схему работы метода (и увидеть физические фрагменты пикселов), необходимо сделать фотографию фрагмента экрана, на котором написано это слово. Например, надпись белым цветом на чёрном фоне на LCD-экране выглядит примерно следующим образом (при достаточно сильном увеличении):

Изображение:Screenshot-subpixeRGB.png

Хорошо видны субпикселы, участвующие в сглаживании, так как их яркость довольно высока, а не участвующие практически сливаются с чёрным фоном страницы, так как их яркость очень низка.

Редактирование файла fonts.conf

Как уже было отмечено, файл fonts.conf состоит из правил, описывающих способы растеризации шрифтов. Правила могут быть как простыми, так и очень сложными, задающими способы отрисовки в зависимости от выполнения каких-либо условий.

Я не буду здесь перессеказывать содержимое встроенной справки, а буду приводить примеры установки конкретных режимов отрисовки шрифтов и пояснять, что означают использованные в примере параметры.

Монохромное сглаживание

Хинтинг

Вот пример файла fonts.conf, в котором задаются правила применения хинтинга:

 version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/my-fonts-sandbox/ttfonts</dir>
<!-- Первое правило: -->
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>

<!-- Второе правило: -->
<match target="font">
<edit mode="assign" name="hinting">
<bool>false</bool>
</edit>
</match>
</fontconfig>

Первое правило разрешает выполнение сглаживания для всех шрифтов, второе — отключает использование хинтинга. Каждое из правил в этом примере состоит из элемента match, который определяет, каких именно шрифтов касается правило; а внутри находится элемент edit, который задаёт конкретное действие, применяемое к шрифту.


Лирическое отступление


В настоящее время в США запатентован ряд алгоритмов растеризации шрифтов, поэтому в исходных кодах библиотеки FreeType часть кода, пересекающаяся с этими патентами, заблокирована и при компиляции каждый производитель дистрибутива должен решить, включать ему этот код или нет. В Debian этот код включен, а в некоторых других дистрибутивах — нет, поэтому результат выполнения описанных действий на вашей машине может быть совершенно иным. Я рекомендую вам поставить версию FreeType, в которой этот код разблокирован, ключевые слова для поиска: TrueType Bytecode Interpreter. Описывать здесь саму процедуру разблокировки я не хочу, так как она детально описана огромное количество раз.

Что же такое Bytecode Interpreter? Если не углубляться в детали, то это интерпретатор хинтов, то есть инструкций, встроенных в шрифт и предназначенных для корректировки отрисованных глифов на устройствах низкого разрешения. Растеризатор считывает векторную картинку глифа, линейно её масштабирует до нужного размера и преобразует в пикселы, а затем выполняет хинтовые инструкции для корректировки полученного растрового изображения глифа. Некоторые такие алгоритмы выполнения инструкций запатентованы в отдельных странах, поэтому в стандартной версии библиотеки (то есть скомпилированной без правки исходников) их либо нет совсем, либо они заменены не подпадающими под патент алгоритмами. Чтобы задействовать эти алгоритмы, нужно перед компиляцией выполнить несколько простых правок, но писать об этом я не буду, так как в сети и без того достаточно мануалов на эту тему.

В дальнейшем я буду считать, что патентованный Bytecode Interpreter включен. Если у вас Debian, то беспокоиться не о чём, если Fedora, то может потребоваться пересборка библиотеки FreeType или установка уже пропатченной версии.

Вот пример файла fonts.conf, в котором включается поддержка хинтинга:

 version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>~/my-fonts-sandbox/ttfonts</dir>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintnone</const>
</edit>
</match>
</fontconfig>

Как вы видите, параметр hinting установлен в true, а также добавлен параметр hintstyle, который задаёт способ хинтинга. Всего для hintstyle возможны четыре значения: hintnone, hintslight, hintmedium, hintfull. При этом hintnone — это самый слабый хинтинг, hintfull — самый сильный. hintfull даёт самый качественный результат растеризации, поэтому остальные значения использовать смысла нет. На картинке ниже показан результат растеризации шрифта Tahoma, 12pt с включенными полным хинтингом и сглаживанием.

Изображение:LinuxFonts-Rasterization-hinting-full-antialias.png

Сравните с бесхинтовым сглаживанием того же самого шрифта того же самого размера:

Изображение:LinuxFonts-Rasterization-no-hinting-antialias.png

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



Источник: http://ru.wikibooks.org/wiki/%D0%A8%D1%80%D0%B8%D1%84%D1%82%D1%8B_%D0%B2_Linux#cite_note-xfree86-6
Категория: Статьи о Linux | Добавил: Root (15.01.2009)
Просмотров: 2693 | Рейтинг: 5.0/1
Похожие материалы:
Всего комментариев: 0
ComForm">
avatar
Профиль
Поиск
Категории раздела
Участвуйте в опросе
Сколько Вам лет?
Всего ответов: 64
Статистика

Яндекс.Метрика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Нас уже: 1302 Линуксоидов
Сегодня нас посетили следующие Линуксоиды -