Файл: Шрифты. Разработка и использование.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.05.2024

Просмотров: 584

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Глава 4

Компьютерные шрифты

Язык Adobe PostScript

Формирование современной технологии настольноиздательских систем часто напрямую связывают с созда-

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

Вряд ли без создания именно стандарта PostScript технология настольно-издательских систем (dtp - desktop publishing) смогла бы достичь сегодняшнего расцвета, но появление подобного общепромышленного стандарта было предопределено. Ha момент появления PostScript ничего похожего на системный подход не было - существовало несколько входных языков для графических выводных устройств, громоздких и неунифицированных, и наборы драйверов - свои для каждой программы и каждого типа компьютеров. Работы над унифицированным языком для устройств вывода велись, очевидно, многими фирмами, однако продукт Adobe PostScript оказался настолько более удачной разработкой, что информация о конкурентах практически не сохранилась.

PostScript можно рассматривать с нескольких точек зрения. C позиции «а что у него внутри» PostScript представляет собой язык программирования интерпретирующего типа, основанный на системе стеков6 и словарей7 и использующий обратную польскую запись8. Отсутствие явно выраженной структуризации языка и возможность одинаково обозначать и использовать переменные и процедуры делает прак-

6Стек в программировании - структура для хранения данных, основанная на принципе «последним пришел - первым вышел», т. е. порядок считывания информации из стека обратен порядку записи в него.

7Словарь в языке PostScript - таблица соответствия имен их значениям, хранящаяся в памяти интерпретатора.

8Обратная польская запись - система записи алгебраических выражений, в которой знак операции ставится не между операндами, а после пары операндов. Так, в польской нотации «2 + 3» пишется, как «2 3 + ».

-91 -


тически невозможным понимание отдельного фрагмента postscriptпрограммы – предварительно нужно просмотреть (и разобрать) весь предшествующий текст. Язык построен на минимальном количестве операций, и в то же время обладает неограниченной возможностью создания новых операций. Использование неструктурированной записи, с одной стороны, предельно облегчает построение интерпретатора и (при некотором навыке) построение своих программ, с другой - делает крайне сложной задачей отладку или корректировку PostScriptпрограммы.

C точки зрения функциональных особенностей, PostScript - язык, созданный специально для программирования графики. Основой описания графики в языке является путь (англ. Path) - совокупность точек, прямых линий, дуг окружности и кривых Безье9. Путь в PostScript является воображаемой линией контура (то есть невидим сам по себе); путь может быть обведен линией (stroke), залит цветом (fill), использован в качестве границы изображения (clip). Созданное с помощью путей изображение может быть отмасштабировано, повернуто на произвольный угол или перемещено в другое место без потери точности. Помимо путей, PostScript поддерживает описание полутоновых (растровых) изображений, как элементов страницы.

C точки зрения пользователя, PostScript является входным языком большинства современных устройств вывода информации высокого разрешения. PostScript - универсальный формат для описания документа, который может быть создан в любой программе подготовки текстов и изображений (если только она имеет команду «print»), при наличии в составе операционной системы драйвера печати PostScript. Записанный в форме PostScript-файла документ может быть выведен на любом устройстве, поддерживающем стандарт языка PostScript. Bo всяком случае, фирма Adobe декларирует такую переносимость для всех сертифицированных ей типов устройств вывода. В действительности, PostScript-описания страниц формируются многими программами с учетом таких особенностей устройства вывода, как формат, ориентация бумаги и разрешение вывода. B ряде случаев несоответствие этих параметров реальному устройству может приводить к неожиданным последствиям.

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

- 92 -


Растрирование в PostScript-технологии

Растровые и векторные изображения

Одно и то же изображение на бумаге, экране или фотопленке можно создать разными способами. Возьмем, для примера, описание на языке Adobe PostScript:

newpath 10 20 moveto 50 80 lineto closepath stroke newpath 120 80 314.15926 0 360 arc closepath stroke

...

эквивалентное на простом человеческом языке следующему: -провести прямую из точки x = 10, y = 20 в точку x = 50, y = 80; -построить окружность с центром в точке x = 70, y = 80 радиусом 50;

...

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

Векторные описания имеют три основных преимущества - ком-

пактность (малый размер описания), простоту редактирования

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

K сожалению, для большинства технических устройств такое «непосредственное» исполнение команд векторного описания изображений является слишком сложным - для этого необходимо обеспечивать точное перемещение бумаги (или другого носителя) и пера (или другого «рисующего» элемента) в произвольных направлениях друг относительно друга. Кроме того, построение сложных изображений путем последовательной отрисовки его элементов непосредственно на бумаге или пленке во многих случаях оказывается слишком медленным. Формирование изображений путем прорисовывания каждого вектора по отдельности используется в планшетных и рулонных

графопостроителях (плоттерах) и фотоплоттерах, используемых, - 93 -


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

Альтернативным способом формирования изображения является его вывод «строка за строкой», по принципу телевизионного растра. Поэтому, собственно, способ построчного формирования изображения из отдельных микроэлементов (точек, или пикселей - от английского pixel) и называют растровым. Растровое построение изображения используется в современных дисплеях, принтерах и устройствах лазерного экспонирования фотоформ и офсетных форм. B растровом изображении каждая точка двумерной матрицы строк и столбцов окрашивается в один из допустимых цветов. Количество цветов зависит от конкретного устройства - в лазерном принтере обычно используется два цвета (один из них, как и в остальных случаях, является цветом фона или основы - бумаги, неэкспонированной фотопленки, несветящегося люминофора кинескопа), в высококачественном мониторе - 16 777 216 оттенков11. Количество точек растрового изображения, приходящихся на единицу линейного размера изображения, называют разрешением устройства12. Для дисплеев наиболее распространенное разрешение - 72 dpi (dpi = dot per inch - точек на дюйм, иногда используется эквивалентный термин ppi = pixel per inch), для лазерных принтеров этот параметр составляет 300-1200 dpi, для устройств экспонирования фотоформ - от 1200 до 5080dpi.

Количество точек в изображении определяется его размерами и разрешением. Так, форматА4 (210x297 мм) при выводе фотоформы с разрешением 2540 dpi содержит 21000х29700 = 623 700 000 пикселей. Структурa данных, содержащая всю информацию, необходимую для вывода pастрового изображения, в виде прямоугольной таблицы, каж-

10B конце семидесятых годов выпускались, правда, дисплеи для ЭВМ серии EC, в которых символы синтезировались по векторному методу.

11Количество оттенков цвета, которое может воспроизводиться устройством, часто называют глубиной цвета и измеряют количеством бит информации на точку изображения (bit per pixel). Монохромные устройства имеют 1 бит на точку (белое или черное,

есть свет или его нет), стандартный EGA монитор имеет 4 бита на точку, то есть воспроизводит 24 = 16 разных цветов. B цветной полиграфии принято работать с глубиной цвета 4 байта (байт = 8 бит) на точку, откуда берется число оттенков 232 = 2564 = 4 294

967296. При синтезе изображений на экране монитора для получения профессионального качества используется 3 байта, или 24 бита на точку, то есть 224= 16 777 216. Именно это число имеется в виду, когда говорят о способности монитора и видеоадаптера передавать «миллионы» цветов.

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

-94 -


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

Хранение изображений в виде битовых карт требует весьма значительных объемов памяти и больших затрат времени на их обработку. Растровое описание достаточно плохо поддается масштабированию при неизменном разрешении или изменению разрешения при неизменных размерах - и то, и другое требует пересчета битовой карты на другое число элементов (ресэмплинга, от англ. sample - отсчет, замер). Ресэмплинг, особенно в сторону увеличения размеров bitmap, приводит либо к появлению грубых ступенек на краях элементов рисунка, либо к появлению нерезкости, размытости, расплывчатости изображения. Однако для вывода на растровое устройство информация может быть представлена только в виде битовых карт.

Что такое «растрирование»

Поскольку растровое изображение выводится на экран или твердую копию14 последовательно, строка за строкой, формирование bitmap изображения (тем или иным способом) должно предшествовать собственно процедуре вывода. Язык описания страниц Adobe PostScript, как следует из приведенного выше обзора, является векторноориентированным языком.

Растровые фрагменты в виде соответствующих битовых карт могут быть элементами PostScript-описания страницы, однако даже для документа, не включающего ничего, кроме полутоновой иллюстрации, содержащий ее прямоугольник определяется в PostScriptтерминах, как векторный объект.

Преобразование векторного описания изображения в bitmap называется растрированием15. Суть этой операции проста. B исходный

13Несколько запоздалое разъяснение: бит - единица информации, представляемой одним двоичным разрядом, т. е. величиной, способной принимать только два состояния: ноль или единица.

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

15Строго говоря, используемому в русском языке термину растрирование на языке первоисточника соответствуют не один, а два термина. Интерпретацию векторного описания и (иногда) формирование bitmap-образов для векторных объектов называют rasterising, формирование bitmap-образов растровых точек (dot) для передачи полутонового изображения - screening. Поскольку в дальнейшем речь пойдет в основном о шрифтах,

-95 -