Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ Компьютерная графика 5 курс.docx
Скачиваний:
20
Добавлен:
16.11.2019
Размер:
44.55 Кб
Скачать

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

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

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

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

 Потоки

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

Комбинации элементов данных

Вы можете предположить, что существуют "чистые" файлы фиксированных полей (содержащие только фиксированные поля), "чистые" теговые файлы (содержащие только теги) и "чистые" потоковые файлы (содержащие только потоки). Однако файлы, состоящие из элементов одного типа, — большая редкость. Чаще применяются комбинации двух и более элементов данных. Например, форматы TIFF и TGA используют и теги, и фиксированные поля, а файлы формата GIF — фиксированные поля и потоки. Организация данных в виде фиксированных полей позволяет читать их значительно быстрее, чем данные, организованные в виде тегов или потоков. Однако файлы, содержащие в основном фиксированные поля, менее удобны при добавлении или удалении данных. Форматы, состоящие из фиксированных полей, с трудом расширяются. Данные, организованные в виде потоков, требуют для чтения и буферизации меньше памяти, чем данные, организованные в виде полей или тегов. Однако файлы, содержащие в основном потоковые данные, не поддерживают произвольный доступ и, следовательно, не могут быть использованы для быстрого поиска. Более подробно особенности применения файловых элементов будут рассмотрены в главах 3, 4 и 5.