Форматы графических файлов Существует огромное количество графических приложений В условиях отсутствия широко принятых стандартов каждый разработчик изобретал.

Презентация:



Advertisements
Похожие презентации
ФОРМАТ ГРАФИЧЕСКОГО ФАЙЛА способ представления графических данных на внешнем носителе.
Advertisements

Компьютерная графика Форматы растровых графических файлов.
Растровая графика Растровая графика – средства и методы компьютерной графики, использующие растровый способ представления графической информации. Растр.
Компьютерная графика Изучив эту тему вы узнаете: Виды графических компьютерных изображений; Принципы формирования графических изображений;
Рассмотрим некоторые форматы графических файлов более подробно. Некоторые форматы графических файлов являются универсальными, так как могут быть обработаны.
Графические редакторы. РАСТРОВЫЕ ВЕКТОРНЫЕ Компьютерные изображения.
Растровая графика Векторная графика Виды компьютерной графики отличаются принципами формирования изображения.
Графические редакторы Программное обеспечение. РАСТРОВЫЕ ВЕКТОРНЫЕ Компьютерные изображения.
ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ. Изучив эту тему вы узнаете: Основные форматы графических файлов ; Назначение форматов; Характеристики форматов.
Принципы построения и обработки векторных изображений урок 32.
Компьютерная графика Изучив эту тему вы узнаете: Виды графических компьютерных изображений; Принципы формирования графических изображений;
Компьютерная графика Изучив эту тему вы узнаете: Виды графических компьютерных изображений; Принципы формирования графических изображений;
Назначение растровой и векторной графики? Растровая графика Применяется при разработке электронных и полиграфических изданий Большинство.
Презентация по теме Расширения растровой графики Власенко Александра.
Растровое изображение хранится с помощью точек различного цвета (пикселей), образующие строчки и столбцы. Пример: черно-белое изображение стрелки (N =
Информатика в школе Графические редакторы Программное обеспечение.
ГрафикаГрафика Векторная и растровая. Начальные сведения из компьютерной графики В компьютерной графике картинки бывают двух принципиально разных типов:
1 Аналоговая и дискретная форма представления информации Пространственная дискретизация Растровые изображения на экране монитора Растровая графика Векторная.
Форматы графических файлов. СОДЕРЖАНИЕ Растровые графические форматы Растровые графические форматы BMP (Windows Device Independent Bitmap) BMP (Windows.
Основные критерии выбора формата - совместимость с программами и компактность записи. Существует множество форматов для записи изображений. Условно их.
Транксрипт:

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

Форматы графических файлов, особенно в области видео, становятся очень сложными; их оригинальные спецификации часто значительно превышают размер одного тома(~600 стр.) Как разобраться в множестве форматов? Для некоторых форматов существуют конкретные документы Существуют программные приложения для обработки графических файлов доступные в исходных текстах Можно исследовать сами графические файлы бит за битом

Методы записи графических файлов Есть два различных метода: растровый (bitmap, карта пикселей) векторный

Наиболее часто используется bitmар, поскольку его проще реализовать. Изображение разбивается на сетку, в узлах которой записывается световое значение каждой точки - яркость или цвет (pixel - picture element) Векторное представление определяет описание изображения в виде серии линий или фигур, возможно с некоторыми закрашенными областями. Векторные файлы очень похожи на программы. Например, круг с радиусом 100 мм и центром в x=2.25 см и y=5 см может быть реализован командой circle(100,2250,5000), записанной в коде ASCII Иногда оба метода используются одновременно (Пост Скрипт), но оба представления совершенно отдельные

Форматы bitmap хорошо работают для изображений со сложными изменениями цвета и формы, таких как фотографии, видеоизображения Векторные форматы наиболее хорошо применимы для чертежей (системы автоматизированного проектирования - CAD) и изображений с простыми формами (диаграммы, графики), представления картографической информации

Чёрно-белое изображение bitmap описывается в рамках трёх измерений: число столбцов число строк количество бит, используемое для представления яркости Например: 1024x1024x24 требует около 3 мегабайт 24 бит (3x8) обеспечивает порядка 16 млн. оттенков Для цветов обычно используется две схемы RGB и CMYK Другой схемой часто используемой в видеоприложениях является YCbCr

Для практических целей используется палитра, подобная используемой в графических адаптерах Для телевизионного качества обычно требуется 8- битная (или 10-битная) палитра из 24-битного цветового пространства. В этом случае файл должен содержать не только данные о пикселах, но и палитру

Графические форматы PCX (Zsoft, Microsoft Inc) TIFF (Aldus Corporation) GIF (CompuServe Incorporated) PNG (Portable Network Grafics) BMP (Windows Device Independent Bitmap) WMF (Windows Metafile) PDF (Portable Document Format) PSD (Adobe Photoshop Document) PostScript (Adobe Systems Inc) JPEG (Joint Photographic Experts Group)

PCX (Zsoft, Microsoft Inc) Формат PCX - один из самых старых растровых форматов. Применяется для хранения растровых изображений (монохромных, 4-, 8- и 24-битных) Для кодирования изображения применяется быстрый и простой способ - кодирование цепочек повторяющихся байтов (один из вариантов алгоритма RLE - runlength encoding) При таком способе кодирования бывает сложно определить насколько сожмется изображение Для сжатия полноцветных 24-битных изображений данный алгоритм является полностью непригодным

Современные версии поддерживают 24-бита для цвета и реализуются либо с помощью палитры на 256 цветов, либо как полный 24-битовый RGB с максимальным размером изображений 64Kx64K пикселей Недостатки: В этом формате нельзя хранить таблицы с цветной коррекцией или коррекцией оттенков серого. Схема группового сжатия оказывается неэффективной для изображений, полученных при помощи сканера. Существует множество реализаций, которые появились в результате длительной эволюции PCX. В результате большинство программ, читающих PCX, не могут работать со всем диапазоном применений PCX.

Структура файла Формат PCX содержит три части: заголовок файла растровые данные палитра с количеством цветов до 256

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

// Заголовок PCX файла (128 байт) typedef struct _PcxHeader { BYTE Id; // 00h Идентификатор PCX (всегда 0Ah) BYTE Version; // 01h Версия BYTE Format; // 02h Тип сжатия BYTE BitsPixelPlane; // 03h Бит на пиксель в плоскости WORD Xmin; // 04h Левая граница изображения WORD Ymin; // 06h Верхняя граница изображения WORD Xmax; // 08h Правая граница изображения WORD Ymax; // 0Ah Нижняя граница изображения WORD Hdpi; // 0Ch Горизонтальное разрешение WORD Vdpi; // 0Eh Вертикальное разрешение BYTE EgaPalette[48]; // 10h 16-ти цветная палитра EGA BYTE Reserved; // 40h Зарезервировано (всегда 0) BYTE NumberOfPlanes; // 41h Количество плоскостей WORD BytesLinePlane; // 42h Количество байтов на строку // развертки WORD PaletteInfo; // 44h Тип палитры WORD HScreenSize; // 46h Размер экрана по горизонтали WORD VScreenSize; // 48h Размер экрана по вертикали BYTE Filler[54]; // 4Ah Зарезервировано (всегда 0) }

Поле Version - номер версии программы Paintbrush, которая создала данный PCX-файл Значение Описание 0 Версия 2.5 с фиксированной палитрой EGA 2 Версия 2.8 с модифицируемой палитрой EGA 3 Версия 2.8 без палитры 4 PC Paintbrush для Windows 5 Версия 3.0

Поле Format может иметь два значения: 0 - незакодированные данные 1 - данные закодированные RLE Поле BitsPixelPlane содержит информацию о количестве битов на пиксель в одной цветовой плоскости Значение Количество цветов

Поля Xmin, Ymin, Xmax, Ymax задают координаты прямоугольника (в пикселях), ограничивающего видимую часть изображения и его положение на экране. Программа должна выводить только те данные, которые попадают в прямоугольник, ограниченный координатами (Xmin,Ymin), (Xmax,Ymax)

Поле EgaPalette[48] - 48-байтовый массив 8-битовых величин, задающих 16-цветную палитру EGA из 64 доступных цветов, поддерживаемых EGA Помимо стандартной и расширенной 16-ти цветной палитры EGA изображения в формате PCX могут содержать расширенную 256-ти цветную VGA палитру. В связи с тем, что поля EgaPalette недостаточно для хранения 256-ти цветной палитры, она дописывается в конец файла

Чтобы определить, присутствует ли расширенная палитра, нужно: 1) Прочитать поле Version, оно должно быть равно 5 2) Прочитать поле BitsPixelPlane, оно должно быть равно 8 3) Прочитать поле NumberOfPlanes, оно должно быть равно 1 4) Отсчитать от конца файла 769 байт, найденное значение должно равняться 12 Если эти условия выполняются, то в файле присутствует расширенная 256-ти цветная палитра. Цвета этой палитры определяются составляющими RGB, которые записаны тройками, начиная с 768 байта от конца файла. Для 24-битных изображений (поле BitsPixelPlane равно 8, а поле NumberOfPlanes равно 3) никакой палитры нет, и по слоям записаны RGB-составляющие пикселя.

Поле NumberOfPlanes задает количество цветовых плоскостей. В сочетании со значением поля BitsPixelPlane используется для определения видеорежима, в котором воспроизводить изображение: Количество Битов Максимальное цветовых на пиксель количество плоскостей в плоскости цветов (видеорежим) (Монохромный) (CGA) (EGA) (EGA и VGA) (SVGA) (SVGA)

Поле BytesLinePlane указывает размер незакодированной строки развертки цветовой плоскости в байтах. Если умножить значение BytesLinePlane на NumberOfPlanes, получится общая длина строки развертки в байтах ScanLineLen = (BytesLinePlane * NumberOfPlanes); Поле PaletteInfo содержит тип информации, записанной в цветовой палитре (1 соотвествует цветной или монохромной информации, а 2 - информации о градациях серого). Paintbrush и большая часть других программ, работающих с PCX игнорируют значение этого поля

Поля HScreenSize и VScreenSize определяют разрешение экрана, на котором было создано изображение (позволяют подобрать видеорежим для адекватного отображения изображения). Так как эти поля были добавлены уже после выхода Paintbrush 3.0, практически невозможно определить содержат ли они достоверную информацию или являются просто частью поля Filler. Поэтому прежде чем использовать эти данные, следует проверить их истинность

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

BMP (Windows Device Independent Bitmap) Формат ВМР является родным форматом Windows, он поддерживается всеми графическими редакторами, работающими под ее управлением. Применяется для хранения растровых изображений, предназначенных для использования в Windows. Способен хранить как индексированный (до 256 цветов), так и RGB-цвет ( оттенков). Формат поддерживает изображения с 1,4,8,16, 24 и 32 битами на пиксел.1,4,8 - битные имеют карту цветов, 24 - битные имеют непосредственную цветопередачу. 16 и 32 битные вместо палитры хранят значения масок полей. Недостатки: Редко поддерживается где - либо ещё кроме Windows

Структура BMP Каждый файл содержит заголовок файла заголовок bitmap собственно изображение

Заголовок файла состоит из 14 битов typedef struct tagBITMAPFILEHEADER { word bfType; // тип файла (для битового // образа - 4D42h ("BM") dword bfSize; // размер файла в байтах word bfReserved1; // не используется - 0 word bfReserved2; // не используется - 0 dword bfOffbits; // смещение данных битового // образа от заголовка в байтах }

За заголовком файла следует заголовок bitmap. Структура BITMAPINFO, содержит всю информацию о битовом образе Она делится на две части: структуру BITMAPINFOHEADER, описывающей размеры и цветовой формат битового образа, и массив структур RGBQUAD, определяющей цветовую палитру: typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; }

typedef struct tagBITMAPINFOHEADER { dword biSize; //число байт, занимаемых структурой dword biWidth; //ширина битового образа в пикселах dword biHeight; //высота битового образа в пикселах word biPlanes; //число битовых плоскостей устройства word biBitCount; //число битов на пиксель dword biCompression; //тип сжатия dword biSizeImage; //размер картинки в байтах dword biXPelsPerMeter;//гориз. разрешение устройства, пиксел/м dword biYPelPerMeter; //верт. разрешение устройства, пиксел/м dword biClrUsed; //число используемых цветов dword biClrImportant; //число "важных" цветов } BITMAPINFOHEADER; Подробнее

Изображение, имеющее 1,4 или 8 бит на пиксель должны иметь карту цветов - bmiColors Размеры карты цветов 2, 16 или 256 элементов, но может быть и меньше если изображение не нуждается в полном комплекте цветов Для 16,24,32 - битных изображений карта цветов отсутствует 24 битные изображения содержат непосредственно RGB – цвета 16 и 32 битные вместо палитры хранят значения масок полей Поскольку устройства изображения может не отображать все цвета, элементы данных в карте цветов должны начинаться с наиболее важных

Элементы данных карты цветов содержат четыре байта каждый typedef struct tagRGBQUAD { byte rgbRed; //интенсивность красного byte rgbGreen; //интенсивность зеленого byte rgbBlue; //интенсивность голубого byte rgbRserved; //не используется } RGBQUAD;

Данные bitmap следуют сразу за картой цветов Данные могут быть несжатые, либо же для 4 и 8 битных изображений может использоваться схема RLE. Логически биты сохраняются построчно Несжатые данные - это ряд значений представляющих собой либо индексы в цветовой палитре, либо реальные RGB - значения. Пикселы упаковываются в байты и выравниваются по строкам

GIF (CompuServe Incorporated) GIF (Graphics Interchange Format) поддерживает 24- битный цвет, реализованный в виде палитры вплоть до 256 цветов (1 байт) и размер изображений 64К х 64К пикселей. Используется для хранения нескольких растровых изображений в одном файле и для обмена растровыми данными Первая версия графического формата Gif была разработана в 1987 году специалистами компьютерной сети CompuServe в качестве простого растрового формата для обмена рисунками в сети (Gif87a). В 1989 году была разработанна новая версия формата (Gif89a)

GIF использует LZW-компрессию, что позволяет хорошо сжимать файлы, в которых много однородных заливок (логотипы, надписи, схемы) GIF-формат позволяет записывать изображение "через строчку" (Interlaced), благодаря чему, имея только часть файла, можно увидеть изображение целиком, но с меньшим разрешением. Эта возможность широко применяется в Интернете. Сначала вы видите картинку с грубым разрешением, а по мере поступления новых данных ее качество улучшается В GIF'e можно назначить один или более цветов прозрачными, они станут невидимыми в интернетовских браузерах и некоторых других программах. Прозрачность обеспечивается за счет дополнительного Alpha-канала, сохраняемого вместе с файлом

Кроме того, файл GIF может содержать не одну, а несколько растровых картинок, которые интернетовские браузеры могут подгружать одну за другой с указанной в файле частотой. Это называется GIF-анимация Основное ограничение формата GIF состоит в том, что цветное изображение может быть записано только в режиме 256 цветов Недостатки: Текущая версия не может иметь более битных цветов За использование формата в разработках взимается плата

GIF имеет пять основных компонентов, которые расположены в фиксированной последовательности. Все компоненты состоят из одного или более блоков. Каждый блок отличается по определенному коду или тегу, расположенному в первом байте Последовательность компонентов следующая: 1. Блок заголовка 2. Блок дескриптора логического экрана 3. Дополнительный глобальный блок цветовых таблиц (палитра) 4. Блоки данных изображения или специализированные 5. Завершающий блок

Рассмотрим содержимое компонентов: Заголовок - одиночный блок (6 байтов), который идентифицирует поток данных как GIF и указывает версию дешифратора GIF (87 а или 89 а) Блок дескриптора логического экрана - определяет размер, соотношение вертикального и горизонтального числа точек и числовую глубину плоскости изображений. Он эквивалентен экрану монитора, на котором изначально отображалось изображение. Он указывает также, следует ли далее глобальная таблица цветов Глобальная таблица цветов - если существует, составляет палитру 24-битных RGB триплетов, по 8 бит на цвет. Эта палитра, является палитрой по умолчанию, и используется в случаях, если последующие изображения не имеют собственных палитр

Блоки данных - представляют собой графику или специализированные блоки. Графические блоки обычно содержат bitmap изображения или другое изображения. Специализированные блоки содержат или код для специализированных приложений, иди непечатаемый комментарий. Когда данные предназначены для изображения последовательно появляются три блока: дескриптор изображения, в котором указанны размеры и палитра изображения и его позиция на локальном экране; локальная палитра; LZW-сжатые данные bitmap. Побитовые данные разделяются на непрерывные подблоки до 256 байт. Для множественных изображений эта последовательность повторяется. Завершающий блок - один байт содержащий 0 х 3B. Конец файла

TIFF (Aldus Corporation) TIFF (Tagget Image File Format) - один из наилучших вариантов bitmap формата для обмена данных между носителями TIFF допускает цветовое разрешение до 48 бит (по 16 бит на цвет) Недостатки: Универсальность TIFF создает проблемы из-за того, что возникает множество вариантов

Структура файла TIFF Формат TIFF имеет трехуровневую иерархию: 1. Заголовок файла (Image File Header IFH) 2. Один или более каталогов (Image File Directory IFD) 3. Растровые данные

Заголовок занимает первые восемь байт. Заголовок содержит только три элемента данных: код, указывающий на порядок следования бит (от младшего к старшему little Indian или big Indian) кодовое число, указывающие что файл записан в TIFF формате указатель в каталоге файла изображения Image File Directory, IFD

IFD неопределенно длинные серии 12-байтовых элементов данных Каждый элемент данных начинается с числового кода, называемого тегом (tag - признак), который определяет тип следующих за ним данных Элемент IFD также содержит или данные, или чаще указатель на данные Элемент IFD также определяет тип данных (например, байтовый) и сколько имеется данных (count)

Структура IFD Размер в байтах 2Кол-во элементов 12 Элемент 0 Элемент 1 Элемент n 4Указатель на следующий IFD, если он существует, или 0000

Структура Элемента Размер 12 байт 2Тег (tag) 2Тип данных 4Поле количества 4Указатель на данные

Тег - код от 254 (0 хFE), в настоящее время заканчивается 532(0 х 216) Отдельным компаниям могут быть выделены свои коды, администратором TIFF для поддержки их собственных программ

Тип данных - код (2 байта). В будущем будут добавлены дополнительные типы 11 байт целое BYTE 21 байт, ASCII BYTE 32 байтовое целое SHORT 44 байтовое целое LONGENG 58 байтовая дробь RATIONAL (4 байта – числитель, 4 – знаменатель) 61 байт целое со знаком SBYTE 71 байт просто UNDERFINED 8 2 байта целое со знаком SSHORT 94 байта целое со знаком SLONG 108 байтовая дробь со знаком SRATIONAL (SLONG – числитель, SLONG – знаменатель) 114 байт с плавающей запятой FLOAT 128 байт с плавающей запятой DOUBLE

Поле количества - количество значений, а не количество байт в поле данных. Количество байт может быть вычислено с использованием Тип данных. Если в поле данных тип ASCU => последний символ 0 (null) он должен учитываться Указатель на данные - указатель на начало поля данных. Иногда, когда число байт меньше 4, то сами данные. Указатель смещения в байтах от начала файла до начала поля данных Используются следующие схемы сжатия: RLE, LZW, CCITT, JPEG

JPEG (Joint Photographic Experts Group) Формат и алгоритм сжатия графических файлов Алгоритм сжатия, основан не на поиске разницы между пикселами. JPEG кодирование - кодирование с потерями Формат файла был разработан компанией C-Cube Microsystems Используя JPEG, можно получить файл в раз меньше, чем ВМР

JPEG (Joint Photographic Experts Group) Любой поток данных (data stream) JPEG начинается с двух байт 255 и 232. Однако многие форматы JPEG помещают заголовок перед потоком данных, поэтому этот маркер не всегда можно найти в начале файла.

PNG (Portable Network Grafics) Формат был разработан в качестве альтернативы Gif формату. В отличии от последнего он позволяет сохранять всю цветовую информацию и информацию об альфа- каналах масок и слоев. Это чрезвычайно сжатый RGB- формат, в котором используется схема сжатия без потерь В PNG формате реализован открытый, не запатентованный алгоритм сжатия данных, обеспечивающий более высокие результаты В отличии от ограниченной 256 цветами палитры Gif, формат PNG позволяет хранить полноцветные изображения с цветовой глубиной 24 бит/пиксел и даже 48 бит/пиксел

PNG (Portable Network Grafics) Дело в том, что при разработке программных средств, читающих или записывающих данные с помощью LZW- кодирования, необходимо платить лицензионные отчисления Unisys Corporation В 1994 г. фирма объявила, что все разработчики, создающие или модифицирующие формат GIF, должны получать лицензию и выплачивать авторский гонорар. Поэтому появилось много проектов, нацеленных на разработку формата, который заменил бы GIF

PSD (Adobe Photoshop Document) PSD - родной формат популярного растрового редактора Photoshop. Он позволяет записывать изображение со многими слоями, их масками, дополнительными каналами, контурами и другой информацией - все, что может сделать Photoshop. PSD понимают только некоторые программы, из них только Fractal Design Painter и Corel PHOTO-PAINT понимают многослойный PSD, причем лишь PHOTO- PAINT 8 открывает файл PSD 100-процентно корректно.

PDF (Portable Document Format) Формат PDF (Portable Document Format) предложен фирмой Adobe как независимый от платформы формат, в котором могут быть сохранены иллюстрации (векторные и растровые) и текст, причем со множеством шрифтов и гипертекстовых ссылок Для достижения продекларированной в названии переносимости (portable), размер PDF-файла должен быть малым. Для этого используется компрессия - к каждому виду объектов применяется свой способ

PDF (Portable Document Format) Для работы с этим форматом компания Adobe выпустила пакет Acrobat. Acrobat Distiller переводит в PDF PostScript-файлы, Acrobat Exchange позволяет их редактировать: устанавливать внутренние ссылки, ссылки на внешние звуковые и видеофайлы, Web-ссылки Первоначальная задача PDF - передача по сети в сжатом виде проиллюстрированных и отформатированных документов - сегодня значительно расширена. PDF позволяет не заботиться о наличии необходимых шрифтов у получателя - все подгружается прямо в файл

WMF (Windows Metafile) Еще один родной формат Windows. Служит для передачи векторов через буфер обмена (Clipboard) Понимается практически всеми программами Windows, так или иначе связанными с векторной графикой. Однако, несмотря на кажущуюся простоту и универсальность, пользоваться форматом WMF стоит только в крайних случаях для передачи "голых" векторов. WMF искажает (!) цвет, не может сохранять ряд параметров, которые могут быть присвоены объектам в различных векторных редакторах, не понимается программами на Macintosh.