КомпьюАрт

11 - 2012

Cпособы представления шрифтов в цифровом виде

Юрий Самарин
Юрий Самарин, докт. техн. наук, профессор МГУП им. Ивана Федорова

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

Основой цифрового шрифта является набор описаний символов. Символы могут быть представлены различными способами. Именно эти способы и определяют вид шрифта. В настоящее время применяются следующие виды шрифтов:

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

Растровые шрифты. Растровый метод создания цифровых шрифтов основан на представлении шрифтовых знаков (символов) в виде матрицы с размерностью nxm пикселов (дискретных точек) — рис. 1.

Рис. 1. Растровое представление символа

Рис. 1. Растровое представление символа

При матричном представлении информации об изображении знака его разлагают на элементы черного и белого цвета. Для этого поле знака (площадь прямоугольника) разбивают на одинаковые части равноотстоящими горизонтальными и вертикальными линиями и полученные строки и столбцы пронумеровывают по порядку. Местоположение каждого элемента поля знака будет полностью определяться номером строки i и номером столбца j. При этом aij = 0, если элемент поля знака белого цвета, и aij = 1, если элемент черного цвета.

Например, изображению знака «О» может соответствовать битовая матрица размерностью 10x12, приведенная на рис. 2. Фактически растровый шрифт представляет собой битовый образ изображения символов, в котором хранится информация о всех точках формируемого символа.

Рис. 2. Матричное представление знака «О»

Рис. 2. Матричное представление знака «О»

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

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

Второй метод основан на формировании изображения знаков из пакета горизонтальных точечно­растровых строк. Этот метод отличается от первого тем, что запись осуществляется сразу несколькими параллельными световыми лучами (пакетом лучей). Текст на материале формируется в результате записи целой полоски изображения по горизонтали и перемещения записываемого материала по вертикали на ширину этой полоски (рис. 3б).

Рис. 3. Формирование изображения шрифтовых знаков из горизонтальных точечно-растровых строк: а — при однолучевом сканировании;

Рис. 3. Формирование изображения шрифтовых знаков из горизонтальных точечно-растровых строк: а — при однолучевом сканировании; б — при многолучевом (пакетном) сканировании записываемого материала

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

Сформированное из отдельных вертикальных или горизонтальных линий (точечно­растровых линий) изображение шрифтовых знаков, в отличие от идеального изображения (рис. 4а) знаков (например, получаемых  путем их  фотографирования с эталонных изображений), имеет растрированную структуру (рис. 4б­д) с пилообразной формой некоторых линий контура знака. Шаг между линиями микрорастра выбирается так, чтобы изображение в пределах знака было сплошным. Для этого шаг должен быть несколько меньше (обычно на 20­30%) диаметра светового пятна, формирующего изображение на материале. Величина, обратная шагу микрорастра, определяется важнейшей характеристикой выводного устройства — разрешением. Чем выше разрешение и соответственно меньше диаметр пятна, тем мельче пилообразная форма линий контура знака и выше качество изображения. Приведенное для примера увеличенное изображение знаков на рис. 4в и 4д получено при разрешении, которое в 2 раза больше, чем изображение знаков на рис. 4б и 4г соответственно.

Рис. 4. Шрифтовые знаки, получаемые при фотографировании эталонных изображений (а) и в фотовыводных устройствах:

Рис. 4. Шрифтовые знаки, получаемые при фотографировании эталонных изображений (а) и в фотовыводных устройствах: б и в — при вертикальном сканировании фотоматериала с разрешением соответственно R и 2R dpi; г и д — при горизонтальном сканировании с разрешением соответственно R и 2R dpi

Современные фотовыводные и формовыводные устройства экспонируют материал с разрешением 1200­5000 dpi, что обеспечивает получение форм высокого качества.

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

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

Однако, несмотря на указанные недостатки, растровые шрифты получили широкое распространение. В современных системах они применяются, как правило, в тех случаях, когда необходима очень высокая скорость работы, а требования к большому разнообразию гарнитур отсутствуют, — например в качестве экранных шрифтов операционных систем или шрифтов матричных принтеров.

Контурные шрифты. Известны два основных способа описания информации о контуре шрифтового знака: контурно­векторный и контурный.

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

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

Рис. 5. Способы кодирования информации о начертании шрифтовых знаков при контурно-векторном (а) и контурном (б) описании изображения знаков

Рис. 5. Способы кодирования информации о начертании шрифтовых знаков при контурно-векторном (а) и контурном (б) описании изображения знаков

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

  ,

где lб и l — линейные размеры знака в базовом и небазовом кеглях; Kб и K — базовый и небазовый кегли; М = K/Kб — масштабный множитель.

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

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

В настоящее время в большинстве допечатных систем применяется контурный способ представления шрифтовых знаков.

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

Математическое описание кривой, заданной на плоскости, может быть представлено в параметрической форме:

x = X(t), y = Y(t).

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

Наиболее универсальной и распространенной кривой, применяемой при описании контуров, можно считать кривую Безье третьего порядка (рис. 6), где параметр t принимает значения от 0 до 1, а уравнение кривой выглядит так:

p = p0(1 – t)3 + p1t(1 – t)2 + p2t2(1 – t) + p3t3,

где точки p0 и p3 являются крайними, а p1 и p2 — направляющими.

Тогда координаты x и y контура изображения будут определяться парой кубических уравнений:

x(t) = axt3 + bxt2+ cxt + x0;

y(t) = ayt3 + byt2+ cyt + y0.

При этом координаты крайних и направляющих точек находятся с помощью выражений:

x1 = x0 + cx /3;    y1 = y0 + cy /3;

x2 = x1 + (cx + bx)/3;    y2 = y1 + (cy + by)/3;

x3 = x0 + cx + bx +ax;    y3 = y0 + cy + by +ay.

Посредством кривых Безье можно описать кривые самой разной формы (рис. 7), включая дуги окружностей.

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

Рис. 7. Представление различных кривых с помощью кривых Безье

Рис. 7. Представление различных кривых с помощью кривых Безье

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

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

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

Рис. 8. Формирование элемента шрифтового знака

Рис. 8. Формирование элемента шрифтового знака

Широкое применение нашли цифровые шрифты форматов Adobe Type 1 (иногда этот формат называют PostScript Type 1 или просто Type 1) и True Type. В формате Туре 1 контуры символов формируются из участков прямых линий (назовем их векторами) и участков кривых Безье третьего порядка. На рис. 8 приведен пример контура элемента шрифтового знака, который аппроксимирован тремя участками прямых (векторами) и тремя участками кривых Безье. Первая кривая имеет крайние точки Р01 и Р31, вторая — Р02 и Р32, а третья — Р03 и Р33. При этом точка Р32 окончания второй кривой совпадает с точкой Р03, то есть с началом третьей кривой.

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

Рис. 9. Схема масштабирования цифровых шрифтов формата Type 1

Рис. 9. Схема масштабирования цифровых шрифтов формата Type 1

Матрица состоит из шести чисел: [a, b, c, d, tx, ty]. Итоговые координаты рассчитываются следующим образом:

x' = ax + cy + tx;

y' = bx + dy + ty.

Обычно в Туре 1­шрифтах используется сетка в 1000 единиц координатного пространства символа, которая соответствует 1 пункту, при этом прописные буквы имеют высоту примерно 700 единиц, а коэффициенты матрицы а и d равны 0,001.

Используя матричную форму представления знака, можно провести его геометрические преобразования. Например, перенести его на расстояния ty и tx (рис. 10а), масштабировать по вертикали и горизонтали с множителями соответственно sy и sx (рис. 10б).

Рис. 10. Преобразование знака: а — перенос; б — масштабирование; в — наклон

Рис. 10. Преобразование знака: а — перенос; б — масштабирование; в — наклон

При помощи FontMatrix можно создавать наклонные начертания без изменения самого шрифта. Для этого коэффициенту с нужно присвоить значение, равное синусу угла наклона (рис. 10в). Например, матрица для координатной сетки 1000 с наклоном 12° вправо будет выглядеть так: [0,001 0 0,2 0,001 00]. Коэффициент b в Туре 1­шрифтах обычно не используется.

Цифровые шрифты позволяют получать различные трансформации шрифтовых  знаков. Трансформации  можно  разделить  на три группы. Первая группа трансформаций — масштабирование, в том числе растягивание по одной из координат осей; поворот и наклон на заданный угол (рис. 10). Вторая группа — манипулирование толщиной штрихов для изменения насыщенности. Третья группа трансформаций — получение декоративных шрифтов.

В формате Type 1 существует правило заполнения контуров: все контуры, направленные против часовой стрелки, заполняются, а идущие в противоположном направлении — нет. Иначе это правило формулируется так: при обходе контура по его направлению заполняется область, лежащая слева (рис. 11).

Рис. 11. Направление обхода контура

Рис. 11. Направление обхода контура

Любой Туре 1­шрифт состоит из двух основных частей: открытой и закрытой (зашифрованной). В открытой части Туре 1­шрифта содержится информация, доступная для любого текстового редактора. Обычно здесь представляются обозначение и заголовок шрифта.

В закрытой части размещаются:

  • область глобальной разметки — содержит описание параметров шрифта, которые используются для повышения качества растеризации;
  • область глобальных подпрограмм — включает несколько подпрограмм, написанных на языке PostScript. Обычно они применяются для реализации наиболее сложных методов разметки;
  • область подпрограмм разметки и контурных подпрограмм;
  • область описания символов.

В формате Adobe Type 1 используется декларативный метод разметки (рис. 12), который основан на описании особенностей символа при помощи их декларирования отдельно от описания контура. В итоге описание символа включает две части: математическое описание символа и декларирование его особенностей.

Рис. 12. Пример разметки символа

Рис. 12. Пример разметки символа

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

Для устранения лишних наплывов во всех символах шрифта применяются так называемые зоны выравнивания. Эти зоны определяются для шрифта и фиксируют положение и ширину всех областей, в которых имеются оптические наплывы (области округлых букв и букв, имеющих угловое окончание сверху или снизу, например буквы «О», «С» и «А»). При масштабировании символов, начиная с определенного размера, происходит подавление оптических наплывов.

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

Рис. 13. Штриховая разметка (хинты)

Рис. 13. Штриховая разметка (хинты)

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

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

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

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

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

В основу формата True Type положен принцип программируемой разметки символов (рис. 14). Основным достоинством True Type­шрифта можно считать его простоту. Вся необходимая информация о символах находится в одном файле, а процесс установки новых шрифтов легок и нагляден. True Type­шрифты «прозрачны» по отношению к любым выводным устройствам, начиная от дисплея и заканчивая самыми сложными PostScript­принтерами и фотонаборными автоматами.

При построении символов в True Type­шрифтах используется координатная система, в общих чертах аналогичная той, которая применяется в Туре 1­шрифтах. Все символы описываются в сетке, размер которой определяется в заголовке шрифта. Максимальный размер сетки равен 16 384. При этом значения координат находятся в диапазоне от –16 384 до +16 384. Обычно используется сетка размером в 2048 единиц (координаты по каждой из осей могут находиться в диапазоне от –2048 до +2047). Масштабирование контуров символа (рис. 15) осуществляется в соответствии с формулой:

  ,

где Sb — размер знака в точках в соответствии с разрешением выводного устройства (ФНА);  — размер контура знака в единицах размерной сетки формата; K — кегль знака в пунктах; R — разрешение ФНА; Sкс —  размер координатной сетки формата.

Например, символ высотой 1400 единиц, определенный в сетке, имеющей размер 2048 единиц, при воспроизведении размером в 10 пунктов на устройстве с разрешением 300 точек на дюйм будет иметь высоту, равную 1400×10(300/(72×2048)) = 24,48 точки.

При этом высота знака должна быть округлена до целого числа точек изображения с учетом правил разметки.

Понятно, что дробные значения координат нельзя воспроизвести на растровом выводном устройстве, поэтому необходимо их округлить. В True Type­шрифтах округление производится не механически, а с применением набора инструкций, которые определяют разметку символов с учетом характера масштабирования отдельных элементов знака, например тонких засечек и т.п.

Рис. 14. Программируемый метод разметки

Рис. 14. Программируемый метод разметки

Для построения контуров символов в TrueType­шрифтах используются векторы и кривые второго порядка — В­сплайны. В определении кривых может участвовать произвольное количество точек; из них две крайние точки (on­curve) лежат на контуре, а остальные (off­curve)  находятся вне его (рис. 16).

При заполнении контуров применяется правило, противоположное тому, что используется для заполнения Туре 1­контуров, то есть при обходе контура по его направлению заполняется область, лежащая справа (см. рис. 11).

Рис. 15. Схема масштабирования цифровых шрифтов формата True Type

Рис. 15. Схема масштабирования цифровых шрифтов формата True Type

Рис. 16. В-сплайны

Рис. 16. В-сплайны

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

Заполнить контур шрифтовых знаков можно различными способами (рис. 17), что позволяет получить большое разнообразие декоративных шрифтов для каждой гарнитуры, представленной в форматах Type 1 и True Type.

Рис. 17. Примеры заполнения контура шрифтовых знаков

Рис. 17. Примеры заполнения контура шрифтовых знаков

Наличие двух принципиально разных по способу представления данных шрифтовых форматов Type 1 и True Type порождает сложности на этапе допечатной подготовки издания. Трудности эти связаны в первую очередь с некорректным переносом шрифтовой информации между компьютерными платформами Mac и РС, а также с недостаточной емкостью шрифтового файла, из­за чего нельзя включить в состав шрифта разнообразные лигатуры и спецсимволы. Для решения этих и других проблем в 1997 году был выпущен новый шрифтовой формат Open Type, разработанный совместно Adobe и Microsoft.

Он обладает двумя основными преимуществами. Во­первых, один и тот же файл шрифта может использоваться на обеих платформах (Маc ОС и Windows). Во­вторых, новые шрифты имеют расширенный набор символов — более 65 тыс. знаков против 256 в шрифтах стандарта PostScript.

Благодаря этому, используя Open Type­шрифты, можно применять расширенный ассортимент знаков и символов: буквицы, капитель и лигатуры, расширенный контекстуальный кернинг и точное оптическое позиционирование символов и акцентов в зависимости от контекста; изящные архаичные формы отдельных букв, знаков, цифр и дробей; исторические написания отдельных знаков в алфавитах и их редукцию в реформах письменности; шрифтовые имитации рукописных каллиграфических образцов текста; письменные системы народов, отличные от стандартного европейского письма; фонетическую запись текстов; текст с диакритическими знаками; текст с нелатинской системой письма (старогреческий, арамейский, сирийский языки, иврит, древнерусский и другие языки).

Шрифты Ореn Туре могут использоваться совместно со шрифтами PostScript, Туре 1 и True Type. В любом шрифте Ореn Туре применяется единственный файл шрифта для всей его иерархической структуры, показателей и растровых данных, что упрощает управление файлами. Формат Ореn Туре основан на кодировке Unicode — это позволяет ему поддерживать практически все языки мира.

КомпьюАрт 11'2012

Популярные статьи

Удаление эффекта красных глаз в Adobe Photoshop

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

Мировая реклама: правила хорошего тона. Вокруг цвета

В первой статье цикла «Мировая реклама: правила хорошего тона» речь шла об основных принципах композиционного построения рекламного сообщения. На сей раз хотелось бы затронуть не менее важный вопрос: использование цвета в рекламном производстве

CorelDRAW: размещение текста вдоль кривой

В этой статье приведены примеры размещения фигурного текста вдоль разомкнутой и замкнутой траектории. Рассмотрены возможные настройки его положения относительно кривой, а также рассказано, как отделить текст от траектории

Нормативные требования к этикеткам

Этикетка — это преимущественно печатная продукция, содержащая текстовую или графическую информацию и выполненная в виде наклейки или бирки на любой продукт производства