Шрифты. Разработка и использование
промежуточных размеров битовая карта каждого символа строится непос¬
редственно перед отображением на основании bitmap из ближайшего по
размеру шрифта той же гарнитуры.
Несмотря на ощутимые потери времени при пересчете битовых карт
«на другой размер» и не слишком высокое качество отображения проме¬
жуточных размеров символов на экране, для вывода только на экран и толь¬
ко прямых символов bitmap-шрифтов было бы вполне достаточно. Про¬
блемы возникают, когда текст нужно повернуть или вывести на «твердую
копию», или то и другое вместе. Если для работы с экраном, имеющим раз¬
решение 72 dpi (точки на дюйм) при отображении символа высотой 16 пун¬
ктов достаточно запомнить битовую карту порядка 256 бит (16 точек по
вертикали, 16 по горизонтали), то для отображения символа того же раз¬
мера на бумаге при разрешении 1200 dpi потребуется матрица из 267x267
элементов, или 8911 байт. Умножьте эту величину на количество символов
в шрифте (256), на количество используемых вами гарнитур и учтите не¬
обходимое количество bitmap для разных размеров символов, а потом при¬
киньте, поместится ли необходимый объем информации на ваш жесткий
диск. Вне зависимости от полученного результата, хранение (и передача)
образов символов в виде битовых карт, пригодных для печати с высоким
разрешением, оказывается слишком неэффективным способом кодиро¬
вания шрифтов.
Векторные шрифты
Возможным решением проблемы масштабирования шрифта на высо¬
кие разрешения является использование векторных шрифтов. Эти шриф¬
ты являются естественным способом определения начертаний символов
для устройств типа перьевых или струйных графопостроителей (плотте¬
ров), способных непосредственно воспроизводить на носителе прямые
либо кривые линии. В векторных шрифтах каждый символ представлен в
виде совокупности геометрических примитивов — обычно отрезков пря¬
мых и дуг окружности, заданных своими координатами относительно «точ¬
ки привязки» (origin point) символа. Пример векторного символа приве¬
ден на рис. 5.2.
Рис. 5.2. Литера векторного шрифта
/
- 96 -
Глава 5. Шрифт в компьютере
Масштабирование векторного шрифта производится простым умноже¬
нием всех координат на соответствующий множитель. Помимо графопост¬
роителей, в конце восьмидесятых годов некоторые программные продукты
работали с векторными шрифтами и на дисплее — можно упомянуть гра¬
фические средства всех компиляторов фирмы Borland для Dos. Однако для
прорисовки шрифтов с качеством, пригодным для полиграфии, в вектор¬
ных шрифтах понадобилось бы слишком большое количество элементов,
образующих контура букв с переменной толщиной — эти контура пришлось
бы «набирать» из множества тонких линий. В настоящее время векторные
шрифты используются только в некоторых программах, связанных с подго¬
товкой чертежей.
Контурные шрифты
Более эффективным решением проблемы является использование так
называемых «outline» (контурных) шрифтов. Иногда их также называют
векторными — это вполне допустимо, если только исключена путаница с
теми шрифтами, о которых шла речь в предыдущем абзаце. Вместо запо¬
минания битовых карт, меняющихся с изменением кегля шрифта, запо¬
минаются только контуры символа (рис. 5.3 и 5.4).
Рис. 5.3. Литера ТгиеТире-шрифта Рис. 5.4. Литера PostScript-шрифта
При необходимости отобразить на том или ином устройстве символ ка¬
кого-то конкретного размера битовая карта для данного символа и данного
кегля строится путем «заполнения» контуров буквы точками, размер кото-
4 — Шрифты
- 97 —