Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов»



страница2/5
Дата26.07.2014
Размер0.59 Mb.
ТипПояснительная записка
1   2   3   4   5

1 ОПИСАНИЕ ГРАФИЧЕСКОГО ФОРМАТА ФАЙЛА


1.1 Описание графического формата GIF

1.1.1 Общие сведения


GIF – формат хранения графических изображений (от англ. Graphics Interchange Format). Формат GIF способен хранить сжатые без потерь изображения в формате до 256 цветов с палитрой, и предназначен, в основном, для чертежей, графиков и т.д. [3].

Независящий от аппаратного обеспечения формат GIF был разработан в 1987 году (GIF87a) фирмой CompuServe для передачи растровых изображений по сетям. В 1989-м формат был модифицирован (GIF89a), были добавлены поддержка прозрачности для создания изображений непрямоугольной формы и анимации. Файл GIF может содержать не одно, а несколько растровых изображений, которые браузеры могут загружать друг за другом с указанной в файле частотой [1].

GIF широко используется в Internet. Формат GIF обладает рядом свойств, определивших его широкое применение при разработке Web-страниц:


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

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

  • Анимация. Форматом GIF предусмотрена возможность создания анимированных изображений. Фактически это несколько изображений, записанных в один файл и чередующихся с заданным интервалом времени [4].

Основное ограничение формата GIF состоит в том, что цветное изображение может быть записано только в режиме 256 цветов.

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


1.1.2 Общая структура файла GIF
Общая структура файла представлена на рисунке (см рис. 1.1).


Заголовок файла

Палитра

Изображение1



ИзображениеN

Признак конца = 3В

Рисунок 1.1 – Общая структура файлов GIF

Теперь рассмотрим каждый элемент структуры отдельно.

Начнем с заголовка файла. Заголовок файла GIF представлен на рисунке (см рис.1.2.). В первых трех байтах стоит метка заголовка (‘GIF’). За ней следуют 3 байта с уточнением версии GIF. Далее расположен блок размером 7 байтов с описанием логического экрана.

Название поля

Размер (в байтах)

Примечание

Идентификатор GIF

3

47 49 46 («GIF»)

Номер версии

3

87а или 89а

Ширина

2




Высота

2




Флаг разрешения

1




Цвет фона

1




Специальная информация

1

Количество цветов и прочее

Рисунок 1.2 – Заголовок файла GIF
Специальная информация – это информация о том, есть ли глобальная палитра, сколько битов используется для RGB-представления одного цвета в палитре, сколько битов приходится на одну точку изображения (пиксель), определения последовательности высвечивания пикселей.

После заголовка идет палитра, которая используется для всех изображений в файле GIF, если у изображения нет собственной палитры. Палитры изображений и глобальная палитра состоят из троек байтов RGB. Обе палитры – локальные и глобальная – не обязательны.

После заголовка файла и необязательной глобальной палитры следует изображение – одно или несколько (если есть анимация). Для каждого изображения сначала записывается собственный заголовок (см. рис. 1.3).


Название поля

Размер

(в байтах)



Примечание

Признак изображения

1

2Сh или “,” (ASCII) для изобра-жения

Координаты левого края изображения

2




Координаты верхнего края изображения

2




Ширина

2




Высота

2




Специальная информация

1

Наличие локальных палитр, прочие локальные параметры изображения

Рисунок 1.3 – Заголовок изображения
Каждый дескриптор изображения начинается с символа-разделителя изображений. Роль разделителя изображений состоит просто в синхронизации при входе в дескриптор изображения. Это желательно, если GIF-файл состоит более, чем из одного изображения. Этот символ определен как шестнадцатеричное 0x2C или ',' (запятая). Как только этот символ встречается между изображениями, непосредственно за ним следует дескриптор изображения.

Специальная информация, в этом случае, - это информация о наличие локальной палитры, в последовательном порядке или порядке переплетения отформатировано изображение, число бит на пиксель в данном изображении

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

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


1.1.3 Сжатие по методу LZW

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

Основные понятия:



  • "Символ": фундаментальный элемент данных - индекс, который указывает цвет данного пиксела (K).

  • "Цепочка": несколько последовательных символов. Длина цепочки может изменяться от 1 до очень большого числа символов ([...]K).

  • "Префикс": префикс непосредственно предшествует символу, может иметь нулевую длину ([...]).

  • "Корень": односимвольная цепочка ( [...]K, где [...] - пуста).

  • "Код": число, определяемое известным количеством бит, которое кодирует цепочку.

  • "Поток кодов": выходной поток кодов, таких как "растровые данные".

  • "Элемент": код и его цепочка.

  • "Таблица цепочек": список элементов обычно, но не обязательно, уникальных.

При сжатии и раскрытии LZW манипулирует тремя объектами: потоком символов, потоком кодов и таблицей цепочек. При сжатии поток символов является входным и поток кодов - выходным. При раскрытии входным является поток кодов, а поток символов - выходным. Таблица цепочек порождается и при сжатии и при раскрытии, однако она никогда не передается от сжатия к раскрытию и наоборот.

Первым, что необходимо сделать при LZW-сжатии, является инициализация цепочки символов. Для этого необходимо выбрать код размера (количество бит), и знать, сколько возможных значений могут принимать символы. Положим код размера равным 12 битам, что означает возможность запоминания 0FFF, или 4096, элементов в таблице цепочек.

Чтобы инициализировать таблицу, установим соответствие кода #0 символу #0, кода #1 to символу #1, и т.д., до кода #31 и символа #31. Т. е. каждый код от 0 до 31 является корневым (больше в таблице не будет других кодов, обладающих этим свойством).

Начнем сжатие данных: определим "текущий префикс" и "текущую цепочку". Префикс изначально ничего не содержит. "Текущая цепочка" ("[.c.]K) образуется текущим префиксом и следующим символом в потоке символов.

Рассмотрим первый символ в потоке символов, назовем его P. Сделаем [.c.]P текущей цепочкой, выполним поиск в таблице цепочек, чтобы определить входит ли в нее [.c.]P. Если входит, то ничего не делаем. Затем делаем текущим префикс [.c.]P.

Берем следующий символ из потока символов - Q, добавим текущий префикс, чтобы сформировать текущую цепочку[.c.]Q. Выполняем поиск в таблице цепочек, чтобы определить входит ли в нее [.c.]Q. В данном случае не входит. Добавим [.c.]Q в таблицу цепочек под кодом #32,и выведем код для [.c.] в поток кодов. Теперь начнем опять с текущего префикса. Продолжаем добавление символов к [.c.], чтобы сформировать [.c.]K, до тех пор, пока не сможем найти [.c.]K в таблице цепочек. Затем выводим код для [.c.] и добавляем [.c.]K в таблицу цепочек.

Алгоритм компрессии LZW выглядит следующим образом (см. рис. 1.4):


[1] Инициализация таблицы цепочек;

[2] [.c.] <- пусто;

[3] K <- следующий символ в потоке символов;

[4] Входит ли [.c.]K в таблицу цепочек?

(да: [.c.] <- [.c.]K;

go to [3];

)

(нет: добавить [.c.]K в таблицу цепочек;



вывести код для [.c.] в поток кодов;

[.c.] <- K;

go to [3];

)


Рисунок 1.4 - Алгоритм компрессии LZW

1.2 Описание графического формата ВМР


1.2.1 Общие сведения
Формат файлов BMP – родной формат Windows. Он поддерживается всеми графическими редакторами, работающими под управлением этой операционной системы. Применяется для хранения растровых изображений, предназначенных для использования в Windows и, по сути, больше ни на что не пригоден. Способен хранить как индексированный (до 256 цветов), так и RGB-цвет (16.700.000 оттенков). Возможно применение сжатия по принципу RLE, но делать это не рекомендуется, так как очень многие программы таких файлов (они могут иметь расширение .rle) «не понимают». Существует разновидность формата ВМР для операционной системы OS/2 [2].
1.2.2 Общая структура файла ВМР
BMP-файл состоит из четырёх частей (см. рис. 1.5).

Название поля

Размер (в байтах)

Заголовок файла

14

Заголовок изображения

40

Палитра

Зависит от количества цветов.

Само изображение

Количество байтов определяется размерами растра и количеством битов на пиксель.

Рисунок 1.5 – Общая структура ВМР-файла
Теперь рассмотрим каждую часть подробно.

Заголовок файла (BITMAPFILEHEADER). В нем помещается общее описание файла. Его структура представлена на рисунке (см. рис. 1.6).



Название поля

Размер

(в байтах)



Примечание

bfType

2

Код формата, соответствует «ВМ».

bfSize

4

Размер файла в байтах.

bfReserved1

2

Зарезервировано. Равно 0.

bfReserved2

2

Зарезервировано. Равно 0.

bfOffBits

4

Адрес битового массива в данном файле.

Рисунок 1.6 – Структура заголовка ВМР-файла
Далее в файле идет еще один заголовок – заголовок изображения (BITMAPINFOHEADER, может отсутствовать), в котором хранится описание размеров растра и цветового формата пикселов (см. рис. 1.7).


Название поля

Размер

(в байтах)



Примечание

biSize

4

Размер заголовка, равен 40 байт.

biWidth

4

Ширина изображения.

biHeight

4

Высота изображения.

biplanes

2

Содержит 1.

biBitCount

2

Бит на пиксел. Может быть 1, 4, 8, 16, 24 или 32.

biCompression

4

Компрессия:

0 – без компрессии;

1 – компрессия RLE8 (8 бит на пиксел);

2 – компрессия RLE4 (4 бита на пиксел);

3 – без компрессии для 16 и 32 бита на пиксел.


biSizeImage

4

Указывает размер изображения в байтах.

biXPelsPerMeter

4

Горизонтальное разрешение в пикселях на метр.

biYPelsPerMeter

4

Вертикальное разрешение в пикселях на метр.

biClrUsed

4

Количество используемых цветовых индексов в палитре.

biCrlImportant

4

Указывает количество индексов, необходимых для отображения изображения.

Рисунок 1.7 – Структура заголовка изображения
Далее в файле помещается палитра (может и отсутствовать) в виде записей RGBQUAD из четырех полей, длина каждого из которых разна 1 байту (см. рис. 1.8).

Название поля

Примечание

rgbBlue

Компонент Синий, от 0 до 255

rgbGreen

Компонент Зеленый, от 0 до 255

rgbRed

Компонент Красный, от 0 до 255

rgbReserved

Не используется и равно 0.

Рисунок 1.8 – Структура записи RGBQUAD

Количество записей RGBQUAD равняется количеству используемых цветов.

После палитры (если она есть) в файле ВМР записывается растр в виде битового массива [5].

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



1   2   3   4   5

Похожие:

Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconФорматы графических файлов Web (gif, jpeg)
Рассмотрим набор инструментальных средств для ра­боты с форматами графических файлов Web1
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconОтчет по Курсовой работе По курсу: компьютерная графика «Исследование графических форматов»
...
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconРазработка методов классификации и поиска в коллекциях графических документов и создание информационной системы
Целью данной работы является разработка методов классификации и поиска графической информации и создание информационной системы,...
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconТемы рефератов развитие способов графических изображений в эпоху Возрождения
Методика преподавания графических дисциплин профессором В. О. Гордоном (1892-1971)
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconПояснительная записка к курсовому проекту по курсу: «Системы реального времени»
Их производительность и объем памяти вполне достаточны для решения множества бытовых и промышленных задач, а архитектура ядер многих...
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconПояснительная записка к курсовому проекту по дисциплине «Методы численного анализа» на тему «Ортогональное разложение матриц и его применения»
Главный упор делается на использование ортогональных преобразований в задаче нахождения всех собственных числе (в том числе кратных...
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconПояснительная записка к курсовому проекту по дисциплине «Конструирование измерительных приборов»

Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconПояснительная записка к курсовому проекту по курсу «Схемотехника эвм»
Использовано 5 литературных источников. Графическая часть включает в себя 4 документа: схему электрическую функциональную (Э2), схему...
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconИнновационный проект «Разработка компьютерных игр для обучения в сфере информационных технологий» номинация
Разрабатываемые игры предназначены для использования вузами, а также для самостоятельного изучения информационных технологий
Пояснительная записка к курсовому проекту по курсу «Методы и способы компьютерных информационных технологий» на тему «Разработка программных способов для просмотра графических файлов, создание графических эффектов» iconКонспект урока «Рисование графических примитивов в растровых и векторных графических редакторах. Инструменты рисования растровых графических редакторов» Донская Наталья Ивановна
...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org