Файл: Шрифты. Разработка и использование.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.05.2024

Просмотров: 586

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

деляемого используемой кодовой таблицей, загружаются в специальную область памяти видеоадаптера, называемую таблицей знакогенератора 19. Системы, использующие графический режим видеоадаптера - Windows всех разновидностей или операционная система Macintosh MAC OS (Macintosh имеет вообще только графический режим работы дисплея) - более гибки, так как каждый символ прорисовывается на экране программно, «по точкам». Поэтому однозначного соответствия кода символа его внешнему виду в таких системах нет. Именно это соответствие (между кодом символа и его видом, начертанием, образом - список синонимов может быть продолжен) и определяется шрифтом. B разных шрифтах один и тот же код (например, 6510) соответствует разным по начертанию символам - A в XeniaXC, A DecorC, $ в Wingdings, Zapf Dingbats и т. д.

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

Растровые, векторные и контурные шрифты

Растровые шрифты

Прежде чем рассматривать, шрифт с точки зрения операционной системы, разберемся с тем, каким образом в принципе может быть представлена (и представляется в действительности) информация о шрифте.

Изображение символов шрифта (как и любое другое) на экране дисплея является растровым изображением, то есть состоит из окрашенных в разныe цвета точек, или пикселей (pixels). B случае текста таких цветов только два - цвет символа и цвет фона. Если условно обозначить точку, окрашенную в цвет символа, единицей, а в цвет фона - нулем, любой изображаемый на экране символ можно представить в виде прямоугольной таблички из нулей и единиц - битовой карты (bitmap), o которой уже говорилось при обсуждении растрирования. Естественно, что количество элементов в таблице однозначно

19 B русифицированных версиях DOS это делается указанием номера используемой кодовой страницы. B нелокализованных версиях используются специальные резидентные программы-«русификаторы», поддерживающие одну или несколько кодовых таблиц.

- 100 -


связано с размером символа на экране - для рисования символа высотой 12 пунктов (1 pt = 1/72 дюйма и точно соответствует размеру пикселя для большинства типов мониторов) нужно иметь Bitmap высотой 12 строк, для символа в 8 pt - в 8 строк. Таблица, содержащая все 256 битовых карт символов для некоторого начертания и некоторого размера, называется bitmap font (bitmap-шрифт). Ha Рисунок 5.1 показано, как выглядит литера «Q» bitmap-шрифта при большом увеличении (тонкие белые линии обозначают границы пикселей).

Рисунок 5.1 Литера bitmap-шрифта

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

Несмотря на ощутимые потери времени при пересчете битовых карт «на другой размер» и не слишком высокое качество отображения промежуточных размеров символов на экране, для вывода только на экран и только прямых символов bitmap-шрифтов было бы вполне

- 101 -

достаточно. Проблемы возникают, когда текст нужно повернуть или вывести на «твердую копию», или то и другое вместе. Если для работы с экраном, имеющим разрешение 72 dpi (точки на дюйм) при отображении символа высотой 16 пунктов достаточно запомнить битовую карту порядка 256 бит (16 точек по вертикали, 16 по горизонтали), то для отображения символа того же размера на бумаге при разрешении 1200 dpi потребуется матрица из 267x267 элементов, или 8911 байт. Умножьте эту величину на количество символов в шрифте (256), на количество используемых вами гарнитур и учтите необходимое количество bitmap для разных размеров символов, а потом прикиньте, поместится ли необходимый объем информации на ваш жесткий диск. Вне зависимости от полученного результата, хранение (и передача) образов символов в виде битовых карт, пригодных для печати с высоким разрешением, оказывается слишком неэффективным способом кодирования шрифтов.

Векторные шрифты

Возможным решением проблемы масштабирования шрифта на высокие разрешения является использование векторных шрифтов. Эти шрифты являются естественным способом определения начертаний символов для устройств типа перьевых или струйных графопостроителей (плоттеров), способных непосредственно воспроизводить на носителе прямые либо кривые линии. B векторных шрифтах каждый символ представлен в виде совокупности геометрических примитивов - обычно отрезков прямых и дуг окружности, заданных своими координатами относительно «точки привязки» (origin point) символа. Пример векторного символа приведен на Рисунок 5.2.

Рисунок 5.2 Литера векторного шрифта

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

- 102 -


граммные продукты работали с векторными шрифтами и на дисплее - можно упомянуть графические средства всех компиляторов фирмы Borland для Dos. Однако для прорисовки шрифтов с качеством, пригодным для полиграфии, в векторных шрифтах понадобилось бы слишком большое количество элементов, образующих контура букв с переменной толщиной – эти контура пришлось бы «набирать» из множества тонких линий. B настоящее время векторные шрифты используются только в некоторых программах, связанных с подготовкой чертежей.

Контурные шрифты

Более эффективным решением проблемы является использование так называемых «outline» (контурных) шрифтов. Иногда их также называют векторными - это вполне допустимо, если только исключена путаница с теми шрифтами, о которых шла речь в предыдущем абзаце. Вместо запоминания битовых карт, меняющихся с изменением кегля шрифта, запоминаются только контуры символа (Рисунок 5.3

и Рисунок 5.4).

Рисунок 5.3 Литера TrueType-

Рисунок 5.4 Литера PostScript-

шрифта

шрифта

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

- 103 -

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

Шрифты TrueType. B зависимости от степени аппроксимирующего полинома различают два типа outline-шрифтов. Так называемые TrueType-шрифты (они могут также называться шрифтами типа 2), первоначально предложенные фирмой Apple для использования в качестве масштабируемых экранных шрифтов в компьютерах Macintosh во второй половине восьмидесятых годов, используют для формирования контура символов кривые второго порядка. Каждый участок контура характеризуется, или задается двумя точками (границами участка) и направлением линии на каждой из границ. Часто для задания направлений используется третья точка, лежащая на пересечении касательных к кривой на ее концах (Рисунок 5.5).

Рисунок 5.5 Элементарная кривая в шрифтах TrueType (парабола второго порядка)

Шрифты PostScript. Векторный шрифт в формате PostScript, или шрифт типа 1 в терминологии языка Adobe PostScript, отличается от TrueType главным образом тем, что контур строится из кривых

- 104 -


третьего, а не второго порядка, называемых иногда кривыми Безье. Пример фрагмента кривой третьего порядка с образующими его элементами приведен на Рисунок 5.6. Использование кривых более высокого порядка обуславливает основные преимущества PostScriptшрифтов перед TrueType.

Рисунок 5.6 Элементарная кривая в шрифтах PostScript (кривая Безье или кубическая парабола)

Во-первых, за счет большего числа степеней свободы Post- Script-линия не имеет изломов в точках сопряжения фрагментов, тогда как для TrueType больший или меньший перелом линии в точке стыковки двух сегментов является почти неизбежным злом. Иначе говоря, символы PostScript-шрифта являются более гладкими, чем TrueType. Во-вторых, для задания контура с тем же или более высоким качеством требуется меньшее количество точек, что уменьшает количество хранимой и передаваемой информации. Третьим недостатком формата TrueType является необходимость преобразования в формат PostScript для загрузки в принтер или любое другое выводное устройство. Как любое преобразование, оно требует затрат времени и может привести к искажению формы символов при выводе. При возможности выбора между TrueType и PostScript-шрифтами предпочтение, без-

- 105 -