Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
62
Добавлен:
02.05.2014
Размер:
145.92 Кб
Скачать

Сплайновые контурные шрифты

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

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

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

Форматы языков описания страницы

Языки описания страницы (PDL — Page Description Language) — это настоящие машинные языки, используемые для описания компоновки, шрифтов и графики печатных и отображаемых страниц. PDL представляют собой интерпретируемые языки, применяемые для передачи информации на устройства печати (например, принтеры) и на устройства отображения (такие, как экраны графического интерфейса пользователя GUI). Особенность этих языков заключается в том, что коды PDL зависят от аппаратных средств. Типичный файл PostScript содержит подробную информацию об устройстве вывода, метрике шрифта, цветовых палитрах и т.п. Файл PostScript с кодом для четырехцветного документа формата А4 может быть напечатан или отображен только на устройстве, которое имеет средства обработки этой метрики.

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

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

Элементы графического файла

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

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

Поля

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

Теги

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

Потоки

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

Соседние файлы в папке Лекции по компьютерной графике