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

которого растеризатор находит соответствие между кодом символа и жестким индексом символа в шрифте, причем известно, что определенному индексу соответствует строго определенный символ. Нарушение соответствия между индексом и изображением символа остается на совести создателя шрифта. Индексы символов обычно определяются международными стандартами. Например, в формате TrueType используется стандарт Unicode.

Стандарт кодирования Unicode

Unicode - это стандарт кодирования символов, разработанный Консорциумом Unicode для определения символов вне зависимости от национальной принадлежности. Этот стандарт использует 16-битное кодирование символов (в отличие от 8-битного, принятого в современных стандартах, прежде всего в стандарте ASCII). Использование для кодирования 16 бит позволяет определить 65536 разных символов (при 8-битном кодировании можно определить только 256 символов), что оказывается достаточным для всех существующих языков, математических символов и других знаков. Co временем к стандарту Unicode добавились свойства другого многобайтного стандарта - ISO 10646.

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

Unicode пока полностью реализован только в операционной системе Windows NT. Однако этот стандарт несомненно имеет будущее, так что при создании TrueType-шрифтов необходимо следить за их соответствием требованиям Unicode.

Управление растеризацией символов

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

- 146 -

(хотя бы потому, что в этом случае контурные шрифты временно преобразуются в векторно-штриховую форму).

Алгоритм растеризации

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

масштабировать (уменьшить или увеличить) контур символа до необходимого размера. Например, при печати текста 10 кеглем на лазерном принтере с разрешением 300 точек на дюйм (12 точек на миллиметр) необходимо, чтобы контур символа H имел примерно 8 точек в высоту; активизировать все точки, попавшие во внутренние области этого кон-

тура (другими словами, заполнить контур).

Проблемы растеризации

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

Нарушение пропорций символа. При воспроизведении симво-

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

При этом возникает проблема округления нецелых результатов. Например, если координаты некоторого элемента символа в системе координат описания контура равны (200; 100), то при уменьшении размера контура в 3 paза они трансформируются в (66.666666; 33.333333). Поскольку нам нужны целые значения, они превратятся в (67; 33), то есть значение горизонтальной координаты немного (на треть точки) увеличится, а горизонтальной - на столько же уменьшится. Если при этом специально не учитывать особенности формы символа, то он может сильно исказиться и даже стать нечитаемым. Ha Рисунок 6.2 приведен пример подобного масштабирования символа H.

Нарушение симметричности некоторых символов. Преж-

де всего этот дефект относится к символам, обладающим симметри-

- 147 -

ей, таким, как A, Ж, M, О, T, Ф, Ш, и некоторым другим. Нарушение симметричности таких символов (например, возникновение разного расстояния между вертикальными штрихами буквы Ш) резко искажает их форму и затрудняет чтение текста.

Рисунок 6.2 Пример масштабирования символа Н

Нарушение единства символов. Применяя некоторые прие-

мы, мы можем избавиться от ошибок округления применительно к одному символу. Ho при этом мы рискуем потерять единство символов в шрифте. Например, если в символе H мы будем округлять толщину вертикальных штрихов в меньшую сторону, а в символе Ш - в большую, то некоторые слова станут трудно воспринимаемыми. Кроме того, при таком подходе нарушается ритмичность шрифта (характерный случай – разное округление расстояния между вертикальными штрихами в символах Ш и Щ).

Рисунок 6.3 Пример смыкания элементов символа

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

- 148 -

вах, а во втором - искажение базовой линии текста и скачки букв в вертикальном направлении.

Смыкание штрихов. B некоторых случаях некачественного масштабирования штрихи и другие элементы символов смыкаются между собой. Наиболее часто это происходит с вертикальными штрихами в узких шрифтах. Ошибочное соединение штрихов (Рисунок 6.3) нарушает графему такой буквы, и человек теряет способность к ее распознаванию.

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

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

Нарушение формы округлых букв. Этот дефект не так резко,

как другие, влияет на удобство восприятия текста. Он «только» искажает форму символов, имеющих большие округлые элементы, например B, О, 3, P, C, а, б и др. Вопрос о заполнении таких элементов можно решать разными способами, но лишь некоторые из них позволяют получить действительно качественное изображение буквы, а остальные приводят к подобным ошибкам, приведенным на Рисунок 6.5.

Теперь, когда мы выявили некоторые проблемы, связанные с растеризацией символов, рассмотрим методы устранения этих проблем. Для этого, прежде всего, введем понятие разметки шрифта. Разметкой мы будем называть описание символов, их элементов и шрифта в целом, призванное улучшить качество растеризации символов. Иногда разметку называют хинтовкой (от англ. hint - подсказка), но этот термин обычно относят к шрифтам в формате Type 1 (для TrueType шрифтов используют понятие инструкций) , поэтому мы счи-

- 149 -

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