Курс лекций по компьютерной геометрии и графике
  256Компьютерная графикаКГиГТема № 2. Форматы графических файлов

Тема № 2 Форматы графических файлов

Страницы: 1 2 3 4 5 6 7

Страница 2

2.2 Описание формата PCX

Файлы изображений, которые используются в продуктах семейства PC Paintbrush и FRIEZE, были разработаны фирмой Zsoft. Расширение файла DOS - PCX, тип формата растровый. Открывать или импортировать файлы PCX могут почти все графические приложения для персональных компьютеров. Цветовые возможности 1, 2, 4, 8 или 24- битовый цвет, никаких оттенков серого. Всегда применяется сжатие ROB. У этого формата есть ряд недостатков: 1) не поддерживает изображения с оттенками серого или таблицы коррекции шкалы серого; 2) не поддерживает цвета CMYK или другие системы отличные от RGB; 3) многочисленные варианты, особенно при работе с цветами, могут делать работу с файлом невозможным; 4) неудобная схема сжатия в действительности может увеличивать размеры некоторых файлов.

Среди положительных сторон формата РСХ можно назвать то, что он хорош для изображений, которые: 1)создают ограниченную палитру цветов (лучше всего 16 или 256); 2) не являются изображениями отсканированными или фотографиями, которые плохо сжимаются; 3)должны быть читаемыми всеми приложениями персонального компьютера.

Файлы изображения PCX начинается с заголовка длиной 128 байт. Затем идут закодированные графические данные. При кодировании используется простой алгоритм, основанный на методе длинных серий. Если в файле запоминается несколько цветовых слоев, каждая строка изображения запоминается по цветовым слоям. Согласно документации Zsoft, это выполняется по приведенной ниже схеме (R - красный слой, G - зеленый слой, B - синий слой, I - слой интенсивности)

Строка изображения 0:
RRR...
GGG...
BBB...
III...

Строка изображения 1:
RRR...
GGG...
BBB...
III...
(и т.д.)

Замечание о некорректности документа. Запоминание по слоям проводится, как правило, для 16-цветных изображений EGA. При стандартной палитре EGA, которая устанавливается по умолчанию BIOS'ом, нулевой слой видео памяти содержит СИНЮЮ компоненту цвета, а не красную. Если же палитра отлична от стандартной, то говорить о том, что слои видео памяти, соотносятся с компонентами цвета вообще затруднительно.

Метод кодирования состоит в следующем:
ДЛЯ каждого байта X, прочитанного из файла. ЕСЛИ оба старших бита X равны 1, то <повторитель> = значению, хранящемуся в 6 младших битах X <данные> = находятся в следующем байте за X. ИНАЧЕ <повторитель> = 1 <данные> = X
Поскольку для насыщения данного алгоритма требуется в среднем 25% неповторяющихся данных и, по меньшей мере, наличие смещения между повторяющимися данными, то размер получаемогофайла, как правило, оказывается приемлемым.

Таблица 2. Формат заголовка PCX

Смещение Обозначение Длина Описание / комментарий
0 Manufacturer 1 Постоянный флаг 10 = ZSoft .PCX
1 Version 1 Информация о версии:
0 = Версия 2.5
2 = Версия 2.8 с информацией о палитре
3 = Версия 2.8 без информации о палитре
5 = Версия 3.0
2 Encoding 1 1 = PCX кодирование длинными сериями
3 Bits per pixel 1 Число бит на пиксел в слое
4 Window 8 Размеры изображения (Xmin, Ymin) – (Xmax, Ymax) в пикселах включительно
12 Hres 2 Горизонтальное разрешение создающего устройства
14 Vres 2 Вертикальное разрешение создающего устройства
16 Colormap 48 Набор цветовой палитры (см. далее текст)
64 Reserved 1  
65 NPlanes 1 Число цветовых слоев
66 Bytes per Line 2 Число байт на строку в цветовом слое (для PCX-файлов всегда должно быть четным)
68 Palette Info 2 Как интерпретировать палитру:
1 = цветная/черно-белая,
2 = градации серого
70 Filler 58 Заполняется нулями до конца заголовка

Все переменные длины 2 являются целыми.

Страницы: 1 2 3 4 5 6 7

Рекламный блок

Информационный блок