Форматы растровых шрифтов
🕛 09.07.2009, 13:32
Область отображения большинства устройств, предназначенных для вывода шрифтов (в том числе дисплеев и принтеров), состоит из отдельных прямоугольных элементов, называемых пикселями. Каждый пиксель может быть окрашен в тот или иной цвет. На монохромном дисплее или на черно-белом лазерном принтере пиксель принимает одно из двух возможных значений, например, отображает черный или белый цвет. Цветные дисплеи и принтеры могут воспроизводить различные цвета, но символы стандартных шрифтов X Window формируются с помощью двух цветов. (Вы можете выбирать любые цвета, например, отображать текст с помощью черного и белого или красного и желтого цветов, но в формировании каждого символа будут участвовать только два цвета.) Каждый пиксель в составе растрового шрифта кодируется с помощью одного бита. Растровое изображение символа представляет собой набор битов - битовую карту. При отображении текста битовая карта символа копируется на устройство отображения.В качестве примера рассмотрим рис. 15.1, на котором показано представление одного символа растрового шрифта. Даже если не принимать во внимание, какие именно пиксели закрашены черным, а какие белым цветом, данный рисунок иллюстрирует ряд характеристик растрового шрифта. Знакоместо (часть растровой сетки, предназначенная для отображения символа) имеет фиксированные размеры. В пропорциональных шрифтах, которые чаще всего используются в книгопечатании, различные символы могут иметь разную ширину. Соответственно различается ширина знакомест для разных символов одного и того же шрифта. Высота знакоместа фиксирована; фиксирована также высота большинства символов. (Существуют так называемые символы с подстрочными элементами. Подстрочный элемент располагается под нижней границей символа. Примерами подобных символов являются g, j, p, q и у. Заметьте, что на рис. 15.1 символ размещается в пределах знакоместа так, что остается место для подстрочного элемента.) Поскольку высота знакоместа фиксирована, размер шрифта на одном устройстве отображения остается постоянным. При переходе на другое устройство с другой разрешающей способностью размер символов изменится. Чтобы обеспечить отображение символов одинакового размера на различных устройствах или отображение символов разного размера на одном устройстве, необходимо иметь в наличии набор битовых карт.
Разрешающая способность дисплея обычно выражается в точках на дюйм (dpi -dots per inch), т. е. разрешение - это количество пикселей, помещающихся на отрезке в один дюйм. В большинстве устройств разрешающая способность по горизонтали и по вертикали совпадает, однако в некоторых случаях она может различаться. Мониторы компьютеров обычно имеют разрешение от 72 до 120 dpi, а разрешающая способность принтеров, как правило, лежит в пределах 144-1200 dpi. (Разрешающая способность, равная 144, характерна для матричных принтеров; кроме того, такое разрешение часто
Битовая карта определяет, какие пиксели в составе знакоместа должны отображаться черным цветом, а какие - белым
устанавливают, чтобы предельно ускорить процесс печати за счет снижения ее качества.) Разрешающая способность высокоуровневых принтеров и специализированных полиграфических устройств, как правило, намного превышает 1200 dpi. Разнообразие устройств печати и необходимость создания отдельного файла для каждого размера шрифта и для каждого значения разрешающей способности приводит к тому, что общее число файлов становится недопустимо большим.
Многие принтеры снабжены встроенными растровыми шрифтами. В 1980-х го-нл^ь. дах такие шрифты широко применялись при выводе информации на печать. В настоящее время лишь отдельные программы работают со встроенными шрифтами. В большинстве случаев используются файлы шрифтов, хранящиеся на компьютере.
Размеры шрифтов измеряются в пунктах (эта единица измерения широко применяется в полиграфии). Для отображения текста абзаца обычно используется шрифт размером 9-14 пунктов. Выбор размера зависит от шрифта и назначения текста. Растровые шрифты чаще всего создаются в том случае, когда необходимо отображать символы фиксированных размеров на устройстве с определенной разрешающей способностью, например, если нужен текст размером 12 пунктов на устройстве с разрешением 144 dpi. Один и тот
же шрифт позволяет отображать символы разного размера на устройствах с различной разрешающей способностью, однако шрифт, созданный с нуля и ориентированный на устройство с конкретным разрешением будет несколько отличаться от шрифта, перенесенного с другого устройства. При необходимости для отображения символов требуемого размера можно изменить битовые карты символов (например, уменьшить размер символов с 12 до 10 пунктов), однако в результате подобных действий отображается текст плохого качества.
Основным преимуществом растровых шрифтов является их простота, а следовательно, и возможность быстрого вывода на устройство отображения. Для вывода символа достаточно скопировать несколько битов из памяти компьютера на дисплей. Это было чрезвычайно важно в 1980-х годах, когда объем ресурсов, доступных пользователям, был крайне мал, но в середине 1990-х к внешнему виду отображаемых данных стали предъявляться все более строгие требования и качество растровых шрифтов перестало устраивать пользователей. В настоящее время быстродействие компьютеров достаточно велико и растровые шрифты применяются все реже.
Для представления шрифтов используются различные форматы. В ранних версиях X Window применялся формат SNF (Server Normal Format - обычный формат сервера), но сейчас он встречается редко. Как правило, в X Window используются шрифты в формате PCF (Portable Compiled Font - переносимый компилируемый шрифт). Формат BDF (Bitmap Distribution Format - формат распространения битовых карт) также часто применяется в X Window, но чтобы Х-программы могли работать с ним, сервер шрифтов преобразует шрифты BDF в формат PCF. В других операционных системах используются другие форматы. Чтобы работать с ними в системе Linux, надо воспользоваться одним из преобразователей шрифтов.
XFree86 использует PCF-шрифты, сжатые посредством программы gzip.
нГЧ\ В большинстве дистрибутивных пакетов для экономии дискового пространства шрифты поставляются в сжатом виде. При этом имена PCF-фаилов оканчиваются символами . pcf. gz. Чтобы использовать эти шрифты при работе X-программ, не обязательно распаковывать их.
Шрифты, применяемые в системе Linux, не ограничиваются используемыми в X Window. Некоторые программы работают с собственными наборами шрифтов. Одной из таких программ является система ТеХ, в которой применяется формат Packed Font (файлы шрифтов имеют расширение . pk). Поскольку система ТеХ в основном разрабатывалась для подготовки материалов к печати, а представлению текста на экране монитора уделялось не слишком большое внимание, число пикселей, составляющих знакоместа в шрифтах Packed Font, существенно превышает соответствующий показатель других форматов.