Форматы контурных шрифтов

Форматы контурных шрифтов

Одна из основных проблем, возникающих при работе с растровыми шрифтами, состоит в том, что эти шрифты плохо масштабируются. Если вам необходимо отображать на одном устройстве символы разных размеров либо выводить текст одного и того же размера на устройства с различной разрешающей способностью, вам потребуется несколько файлов шрифтов. Учитывая разнообразие имеющихся в настоящее время устройств отображения и требования к масштабированию символов, предъявляемые современными программами (например, текстовыми процессорами), становится очевидно, что, для того, чтобы отобразить высококачественный текст на разнообразном оборудовании, потребуется чрезвычайно большой набор файлов шрифтов. Решить эту проблему можно, используя контурные, или масштабируемые шрифты. Вместо битовых карт в контурных шрифтах символы представляются в виде описаний кривых, с помощью которых формируются их контуры. Вернемся к рис. 15.1. Если знакоместо 8?8 пикселей увеличить до гораздо больших размеров, например 80000?80000, контуры символа могут быть описаны набором прямых так, как это показано в табл. 15.1.

Таблица 15.1. Контурное описание символа, представленного на рис. 15.1

Операция Координата x Координата у Установка в начальную позицию 10000 10000 Прямая 10000 60000 Прямая 20000 60000 Прямая 20000 40000 и т.д. … …

Замкнутый контур заполняется цветом. Основное преимущество контурных шрифтов состоит в том, что символ легко масштабировать для отображения на устройстве с любой разрешающей способностью. Для масштабирования символа достаточно перевести описание из исходной системы координат в систему координат, соответствующую конкретному устройству отображения. Чтобы описание было максимально точным, разрешающая способность в исходной системе координат принимается очень высокой. Описание большинства символов не исчерпывается прямыми линиями. Как правило, контур символа строится из набора кривых. Часто в описание символа включают закодированные специальным образом рекомендации разработчика (hint). Эти рекомендации позволяют повысить качество отображения символов на устройствах с низким разрешением, например на мониторах компьютеров.

На заметку

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

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

Существуют различные форматы представления контурных шрифтов. В качестве примеров можно привести Bitstream Speedo, Adobe Type 1, Type 3, Type 5, Type 42 и Apple TrueType. (Шрифты Type 42 на самом деле представляют собой шрифты TrueType, преобразованные для вывода на PostScript-принтеры.) Различия между разными форматами контурных шрифтов гораздо более существенны, чем в случае растровых шрифтов, так как в них используются различные типы описаний прямых и кривых линий. В большинстве случаев шрифты можно преобразовать из одного формата в другой, но при этом начертания символов будут незначительно отличаться друг от друга. В частности, в процессе преобразования могут быть потеряны рекомендации разработчика, что ухудшит внешний вид символов при выводе на устройства с низким разрешением. Поэтому рекомендуется использовать исходный формат шрифта, а если это невозможно, то следует приобрести у разработчика тот же шрифт, представленный в нужном вам формате.

В Linux (а точнее, в XFree86) реализована поддержка контурных шрифтов Speedo и Adobe Туре 1. Шрифты Speedo используются достаточно редко, а шрифты Туре 1 нашли широкое применение; они распространяются на компакт-дисках и доступны через Internet. Кроме того, некоторые шрифты Туре 1 входят в поставку Linux. В Windows и MacOS шрифты TrueType намного более популярны, чем Туре 1. В частности, TrueType является стандартным форматом шрифтов для системы Windows. Считается, что шрифты TrueType позволяют обеспечить более высокое качество отображения на устройствах с низким разрешением, чем Туре 1, однако такое утверждение справедливо только в тех случаях, когда в состав шрифта включены подробные рекомендации разработчика. При отсутствии рекомендаций разработчика символы TrueType отображаются ничуть не лучше, чем символы Туре 1.

СОВЕТ

Корпорация Microsoft разработала шрифты TrueType, снабженные подробными рекомендациями. Они предназначены для использования в Web-броузерах и доступны по адресу http://www.microsoft.com/typography/fontpack/. Если вы скопируете файлы, ориентированные на применение в Windows 3.1, то сможете непосредственно использовать их в системе Linux. Эти шрифты поставляются в виде самораспаковывающихся (в системе Windows) zip-файлов; в Linux вы можете извлечь их содержимое с помощью утилиты unzip. Порядок инсталляции шрифтов будет описан далее в этой главе. Разработчики многих Web-узлов предполагают, что шрифты, о которых идет речь, уже установлены на клиентской машине, поэтому, инсталлировав их, вы сможете наиболее корректно отобразить соответствующие Web-страницы.

В версиях XFree86, предшествующих 4.0, шрифты TrueType не поддерживались, поэтому единственным способом работы с ними было применение сервера шрифтов. В настоящее время есть возможность непосредственного использования шрифтов TrueType в X Window, однако в большинстве дистрибутивных пакетов для работы с TrueType традиционно применяется сервер шрифтов.

X Window — не единственная система, в которой используются контурные шрифты. С помощью специальных инструментальных средств можно, например, обеспечить работу TeX с этим типом шрифтов. Программа Ghostscript (PostScript-интерпретатор для принтеров, не поддерживающих PostScript) также использует растровые шрифты: чаще всего Ghostscript работает со шрифтами Туре но в некоторых случаях может применяться и формат TrueType. Растровые шрифты необходимы для обеспечения работы текстовых процессоров. Упомянутые здесь программы, за исключением текстовых процессоров, не используют сервер шрифтов.