Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
168
Добавлен:
22.03.2015
Размер:
5.01 Mб
Скачать

Рисунок 6.19 Улучшение контуров TrueType-шрифтов

3. Заполнение контуров

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

Разметка в TrueType-шрифтах

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

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

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

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

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

- 173 -

1.Измеряется некоторое расстояние, которое затем округляется по определенным правилам.

2.Остальные расстояния (целочисленные) устанавливаются в пропорции к измеренному.

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

Общее описание языка разметки

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

Итак, при построении программы разметки используются следующие структуры:

стек данных;

команды языка;

глобальные таблицы.

Через стек данных командами производится передача всех значений. Команды могут брать значения со стека или класть их на стек. Стек работает по принципу «последний вошел - первый вышел», так что параметры командам (если их больше одного) передаются в обратном порядке. Стек может содержать значения, кратные 32 битам при 32-битной реализации TrueType-машины (Windows NT) и 16 битам при 16-битной реализации (Windows 3.1).

Данные и команды чередуются в потоке команд. Специальные команды (и только они!) могут выбирать значения из потока и переносить их на стек. Все остальные команды работают только со значениями, находящимися на стеке.

Команды языка разделяются на следующие группы:

переносящие значения на стек;

управляющие областью данных;

управляющие таблицей значений;

изменяющие текущее графическое состояние;

управляющие контурами;

общего назначения.

Большая часть команд используется для измерения параметров контуров и для перемещения точек, определяющих контуры. Отдельные команды применяются для управления последовательностью интерпретации программы (например, команды условных и безусловных переходов) и для управления областями данных.

Основная область, в которой хранятся все постоянные и проме- - 174 -

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

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

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

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

Обозначение точек

Программа разметки, написанная на языке TrueType, связывается с контурами символов, которые описываются отдельно, при помощи указания номеров точек. Нумеруются все точки, определяющие контур (on-line и offline), как это показано на Рисунок 6.20.

Команды языка могут использовать любые точки, реально описывающие контур, и набор точек, используемых только в качестве промежуточных. Для разделения этих точек символ представляется состоящим из двух слоев: слой 1 (Z1), содержащий реальные точки, и слой 0 (Z0), состоящий из промежуточных точек. Оба слоя могут применяться во всех операциях языка.

Кроме этого, интерпретатор добавляет к описанию контура символа две дополнительные точки, определяющие поля символа

(Рисунок 6.21).

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

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

- 175 -

Рисунок 6.20 Нумерация точек, определяющих контур в TrueTypeшрифтах

Рисунок 6.21 Дополнительные точки, определяющие поля символа в

TrueType-шрифтах

B некоторых операциях требуется указание одной из трех опорных точек, которые могут указывать на любую из точек контура в слое 1 или на промежуточные точки в слое 0. Номера опорных точек опре-

- 176 -

Соседние файлы в папке Шрифты. Разработка и использование
  • #
    22.03.20156.15 Кб13.DS_Store
  • #
    22.03.2015256 б24Как Стать Графическим Дизайнером Самостоятельно За Полгода.webloc
  • #
    22.03.2015255 б17Советы Начинающим Дизайнерам » Как стать графическим дизайнером.webloc
  • #