- •Лекция №1,2,3 Графические программы. Графические пакеты
- •Растровая графика
- •Векторная графика
- •Сравнительный анализ современных программ обработки и просмотра графических изображений ms Power Point, Adobe Photoshop, Corel Draw, acdSee
- •Лекция №4,5 Графические форматы файлов. Экспортирование и импортирование графических файлов
- •Типы графических форматов
- •Форматы сцены
- •Элементы графического файла
- •Преобразование форматов
- •Сжатие данных
- •Форматы файлов растровой графики
- •Форматы файлов векторной графики
Элементы графического файла
Разные спецификации файловых форматов используют различную терминологию. Главным образом это относится к структурам данных в файле: полям, тегам и блокам. Иногда в спецификациях приводится определение одного из этих терминов, но затем он может быть заменен на другой, более наглядный, например последовательность на запись. В рамках этой книги мы будем считать, что графические файлы состоят из последовательностей данных или структур данных, называемых файловыми элементами или элементами данных. Эти элементы подразделяются на три категории: поля, теги и потоки.
Поле — это структура данных в графическом файле, имеющая фиксированный размер. Фиксированное поле может иметь не только фиксированный размер, но и фиксированную позицию в файле. Для определения местоположения поля задают либо абсолютное смещение от ориентира в файле, например от начала или конца файла, либо относительное смещение от любых других данных. Размер поля может быть указан в спецификации формата либо определен по другой информации.
Тег — это структура данных, размер и позиция которой изменяются от файла к файлу. Аналогично полю, позиция тега задается либо абсолютным смешением относительно известного ориентира в файле, либо относительным смешением от другого файлового элемента. Теги могут содержать в себе другие теги или наборы связанных полей.
Потоки
Поля и теги спроектированы таким образом, чтобы помочь программе получить быстрый доступ к нужным данным. Если позиция в файле известна, то программа может получить доступ к ней непосредственно, без предварительного чтения промежуточных данных. Файл, в котором данные организованы в виде потока, не дает таких возможностей и должен читаться последовательно. Мы предполагаем, что поток позволяет поддерживать блоки данных переменной длины, которые являются элементами потока и должны учитываться программой при чтении файла. Хотя начало и конец потока могут быть известны и заданы, местоположение блоков данных (за исключением первого) неизвестно и определяется в процессе чтения.
Комбинации элементов данных
Вы можете предположить, что существуют "чистые" файлы фиксированных полей (содержащие только фиксированные поля), "чистые" теговые файлы (содержащие только теги) и "чистые" потоковые файлы (содержащие только потоки). Однако файлы, состоящие из элементов одного типа, — большая редкость. Чаще применяются комбинации двух и более элементов данных. Например, форматы TIFF и TGA используют и теги, и фиксированные поля, а файлы формата GIF — фиксированные поля и потоки. Организация данных в виде фиксированных полей позволяет читать их значительно быстрее, чем данные, организованные в виде тегов или потоков. Однако файлы, содержащие в основном фиксированные поля, менее удобны при добавлении или удалении данных. Форматы, состоящие из фиксированных полей, с трудом расширяются. Данные, организованные в виде потоков, требуют для чтения и буферизации меньше памяти, чем данные, организованные в виде полей или тегов. Однако файлы, содержащие в основном потоковые данные, не поддерживают произвольный доступ и, следовательно, не могут быть использованы для быстрого поиска. Более подробно особенности применения файловых элементов будут рассмотрены в главах 3, 4 и 5.