Формат компьютерных шрифтов - TrueTipe

Автор работы: Пользователь скрыл имя, 22 Декабря 2012 в 00:54, реферат

Краткое описание

Шрифты в данном формате используются во многих современных операционных системах. Файлы с такими шрифтами имеют расширение имени «ttf». В зависимости от версии формата, максимальное количество хранимых символов может ограничиваться значениями 2 в 8-ой, 2 в 16-ой или 2 в 32-ой степени.

Вложенные файлы: 1 файл

РЕФЕРАТ.docx

— 94.70 Кб (Скачать файл)

TrueType (ТруТайп) — формат компьютерных шрифтов, разработанный фирмой Apple в конце 1980-х годов.

Шрифты в данном формате  используются во многих современных  операционных системах. Файлы с такими шрифтами имеют расширение имени  «ttf». В зависимости от версии формата, максимальное количество хранимых символов может ограничиваться значениями 28, 216 или 232.

Свободное ПО

В ОС на основе свободного ПО для работы с данными шрифтами используется свободная библиотека FreeType, поддерживающая этот и другие форматы шрифтов.

Apple принадлежат три патента, имеющие отношение к некоторым способам обработки контуров шрифтов TrueType для вывода при маленьком размере. Так как эти патенты могут препятствовать свободному использованию таких способов, FreeType по умолчанию распространяется с отключённой их поддержкой, и обрабатывает контуры по-другому.

Принцип хранения информации о символе

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

• информация о линии  контура хранится в виде точек

• прямая линия контура  строится по двум точкам начальной и конечной (Рисунок 1).

• элемент дуги строится методом Безье. Начало и конец кривой описываются точками, которые лежат на самой кривой. Остальные точки, не принадлежащие кривой служат для построения дуг (Рисунок 2).

 

Рисунок 1

 Пример построения  линии по двум точкам

 

Рисунок 2

 Пример построения  кривой Безье


Для построения кривой (рисунок 2) требуется три точки: P0, P1, P2, которая идёт из точки P0 в точку P2. P1 не лежит на кривой и служит для определения её кривизны. Для расчёта каждой точки кривой воспользуемся формулой 1:

P(t) = (1-t)2P0 + 2t(1-t)P1 + t2P2 (формула 1)

 

Рисунок 3 Пример построения более сложной кривой, состоящей из двух Безье

 

Рисунок 4 Пример кривой без промежуточной точки P2(рисунок 3).


На рисунке 3 приведён пример сложной кривой, которая состоит  из двух простых. На рисунке 4 та же самая  кривая, но точка P2 отсутствует. Её координаты восстанавливают. Например в данном случае точка P2 лежит по середине отрезка P1 P3. Подробнее об этом можно почитать в описании построения кривой Безье, квадратичный метод.

Итак, для построения контура  используется два вида точек. Один тип — это точка, лежащая на контуре, является началом одной кривой или отрезка и концом другой. Другой вид точек — это точки не лежащие на контуре и являются контрольными точками для построения кривой. Между двумя кривыми может отсутствовать координатная точка и её придётся восстанавливать.

Следующее правило:

• первая и последняя  точка контура замыкаются. То есть контур не может быть не замкнутым. Обязательно строится отрезок или  кривая из последней точки в первую.

Рисунок 5

Пример построения символа  «С»

На рисунке 5 показан прием  построения одноконтурного символа  «С». Контур состоит как из отрезков, так и из кривых. Или, говоря дословно, для построения этого символа  использовались точки лежащие на контуре on-curve и контрольные точки (не лежащие на кривой off-curve). 25 точка смыкается с 0. 26, 27 точки являются контрольными (off-curve) и служат для построения кривой 25-0.

 

Рисунок 6

Пример построения трёх контурного символа «B»

 

Рисунок 7

Пример закрашивания внутренних областей


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

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

Как видно из примера 5, контур не обязан завершаться on-curve точкой.

• Для того чтобы строить  контур, каждая точка имеет свой индекс, и линии (кривые) рисуются в  порядке следования индексов. Первый индекс 0. Информация о количестве точек  ограничена 16 битным числом то есть теоретически символ может строиться из 65536 точек(точек может быть и больше).

Для того чтобы узнать количество точек из которого строится символ, нужно посмотреть информацию о последнем  индексе последнего контура. Также  необходимо просмотреть флаги всех точек. Допускается повтор точек  с одними и теми же флагами несколько  раз. Количество точек — номер последнего индекса +1, так как нумерация начинается с 0, плюс сумма всех повторяющихся точек.

Заливка символа. Из рисунков 5, 6 видно, что только контуров для  построения символов не достаточно. Пространство внутри контура требуется закрасить. Как это сделать, если например символ «B», рисунок 6, имеет три контура  и требуется закрасить только то, что находится между 1 м контуром и 2 м, а также 1 м и 3 м. А то, что внутри 2го и третьего — не закрашивать. Для этого ввели ещё правила:

• Внешний контур всегда закрашивается внутри независимо от обхода.

• Внутренний контур закрашивается  в зависимости от обхода внешнего контура. Если порядок обхода точек  совпадает, то внутренняя область закрашивается, если не совпадает, то не закрашивается (рисунок 7).

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

Точки p1 и p4 лежат внутри внешних (наружных) контуров и эта  область всегда закрашивается, не зависимо от обхода точек.

Точка p2 попадает в область  между двумя внешними контурами  с разными проходами и эта  область не закрашивается.

Точки p3 и p5 попадают в области  внутренних контуров и закрашивание происходит в зависимости от обхода точек. Точка P3 получается внутри контура с обходом точек против часовой стрелки, в то время как внешний контур имеет обход в другую сторону и из-за этого область 3 не закрашивается. Точка p5 попадает в область с обходом по часовой стрелке, такое же направление обхода, что и у внешнего контура, поэтому область закрашивается.

С точки зрения построения шрифта — область точки p5 избыточна. Данный внутренний объём будет закрашен в любом случае.

Составной символ

Для сокращения числа хранения похожих символов придумали комбинировать  два символа в один. Например буква Ё — это буква Е с двумя точками над ней. Точки и Е могут хранится отдельно, а при построении Ё символа, берётся информация из двух источников.

 
ЁÄÜÃÑÕÝÚÐØ

Рисунок 8 Пример символов, которые можно сделать комбинированными

Хинтинг

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

Единица измерения  шрифта

Единица измерения величины шрифта — point (англо-американский пункт), которая обычно переводится как пункт, и полиграфическая единица измерения величины шрифта (французский пункт), на самом деле не совпадают. Компьютерный пункт равен 0,353 мм, а полиграфический пункт — 0,376 мм. Разница составляет около 7 %. Поэтому при указании кегля обязательно нужно уточнить, какой пункт имеет в виду заказчик, а какой заложен в верстке.

 


Информация о работе Формат компьютерных шрифтов - TrueTipe