Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Формат PCX ( расширение PCX)





Настоящий формат хранения растровых изображений на РС был разработан фирмой Zsoft для программы PaintBrush.

Файл программы РСХ состоит из заголовка. Все версии файлов РСХ имеют заголовок одинаковой структуры длиной 128 байт. Структура заголовка приведена в таблице 10.2.

Таблица 10.2. Структура заголовка РСХ.

Смещение Длина в байтах Примечание
Байт идентификации: 0АН=файл РСХ
Версия файла - 2,5 2 = версия 2,8 с описанием палитры 3 = версия 2,8 без описания палитры 5 = версия 3,0
Ключ кодирования (уплотнения данных) 0 = без кодирования 1 = уплотнение RLE методом
Количество битов на пиксель (количество битовых плоскостей)
Координаты углов рисунка XMIN, YMIN, XMAX, YMAX (рис. 27)
Разрешение по горизонтали dpi (dots per inch) - число точек на дюйм
Разрешение по вертикали dpi (dots per inch) - число точек на дюйм
Описание палитры в поле (16х3)м байтов
Зарезервировано
Число битовых плоскостей (не более 4)
Число байтов на строку изображения (четное число)
Параметры палитры 1 = ч/б 2 = уровни серого
Пустые (для выравнивания заголовка до 128 байт)

Следует отметить, что данные заголовка читаются справа налево. Вначале (слева) находятся низшие разряды числа, а справа - старшие. Например число FF31 записано так 31FF.

Формат РСХ рассчитан для хранения прямоугольного участка изображения, состоящего из N строк по X пикселей в строке. Запоминание изображения осуществляется построчно, причем число битов (Х) четно и должно быть кратным 16-ти. Если оригинальный рисунок имеет другие размеры, то в конце строки добавляется несколько точек. Число строк в рисунке должно быть кратным 8-и. Для этого в нижней части рисунка (рис. 10.15) иногда вводятся дополнительные пустые строки.

Рис. 10.15

 

Следующие за заголовком графические данные располагаются в следующем порядке.

Каждый рисунок считывается построчно и разделяется на битовые плоскости. (рис 10.16). Плоскость 0 - соответствует синему цвету, 1 - зеленому, 2 - красному, 3 - интенсивности.

 

 

 

Рис. 10.16

Вначале обрабатывается плоскость красного цвета . биты начальной строки объединяются в пары байтов. Незагруженные биты в последней паре байтов дополняются нулями.

После этого точно также обрабатывается плоскость зеленого цвета этой же строки. Потом синего и интенсивности. Выполняется переход на вторую строку и цикл обработки повторяется до окончания числа строк.

В файлах РСХ используется два метода укладки графических данных в файл : без уплотнения и с уплотнением. Если данные хранятся без уплотнения, то в байт со смещением 02 заголовка заносится число отличное от единицы, например 0.

Уплотнение (кодировка) данных в файле РСХ осуществляется так.

1. Если оба старших бита (6,7) байта заполнены 1, то последующая информация находится в уплотненной форме. В этом случае биты 0-5 указывают необходимое количество повторов цепочки битов, записанных в следующий байт.



2. Если хотя бы в одном из старших битов (6,7) содержится нуль, то данный байт следует трактовать именно как байт данных. В этом случае все биты 0-7 обрабатываются непосредственно как данные изображения, т.е. при загрузке неуплотненных данных два старших бита представляют точки изображения.

Например, пусть пара байтов соответствует коду С2FA, что в двоичном исчислении имеет вид : 1100001011111010.

Поскольку в первом байте биты 6 и 7 единичные, а в битах 0-5 записано десятичное число 2, то цепочка битов второго байта повторится дважды : 1111101011111010.

Если же , например, байт имеет вид 1А, что в битовом представлении соответствует 00011010, то эта цепочка битов является частью строки изображения.

Для исключения неопределенности в случае, когда байт данных содержит единицы в 6 и 7 битах поступают так. Поскольку этот байт данных представляется лишь раз, то перед ним записывается байт-признак такого представления - С1. Пусть имеется байт данных С9. Здесь шестой,седьмой биты единичны. Тогда в РСХ-формате он представится так: С1С9.

Дамп файла РСХ представлен на рисунке 10.17.

Рис.10.17.

В том случае, когда сканированное изображение хранится в другой версии файла РСХ необходимо выполнить перевод из этой версии в версию соответствующей программы. Начиная с версии 2.8 при программировании операций чтения файлов формата РСХ необходимо учитывать данные о палитре цветов, которые располагаются со смещением 68 от начала заголовка.

 

Windows– формат (BMP).

В программе Windows для хранения растровых графических изображений используется ВМР – формат. Его главным достоинством является независимость от устройств отображения.

ВМР – файл состоит из нескольких блоков данных:

BITMAP_FILE – заголовок

BITMAP_INFO

(BITMAP_INFO – заголовок)

(RGB_QUAD)

BITMAP – данные рисунка

Заголовок BITMAP­­­­­­­­_FILE имеет следующую структуру (таблица 10.4)

 

Таблица 10.4. Структура заголовка ВМР – файла.

Смещение Длина в байтах Имя Значение
00Н bf Type Метка файла (‘BM’)
02H bf Size Длина файла в байтах
06Н Резервные (содержат 0)
08Н Резервные (содержат 0)
0АН bf offs Смещение области данных

 

Четырехбайтовое имя offs содержит смещение от начала файла

до первого байта графических данных.

BITMAP_FILE – заголовок описывает данные в целом.

Детально параметры хранимого изображения описаны в BITMAP_INFO блоке, который следует непосредственно за заголовком файла. Этот блок состоит из BITMAP_INFO – заголовка, в котором хранятся общие сведения об изображении, и RGB_QUAD, в котором задается палитра цветов. Структура BITMAP_INFO заголовка представлена в таблице 10.5.

 


Таблица 10.5.Структура BITMAP_INFO – блока

Смещение Длина в байтах Имя Значение
      BITMAP_INFO – заголовок
0ЕН biSize Длина – заголовка в байтах
12Н biWidth Ширина битовой карты в пикселах
16Н biHeight Высота битовой карты в пикселах
1А Н biPlanes Цветовые плоскости (должно быть значение)
1СН biBitlnt Количество битов на пиксел
1ЕН biCompr Тип сжатия данных
22Н biSizeIm Размер графического изображения в байтах
26Н bixPels/m Разрешение по горизонтали
2АН bixPels/m Разрешение по вертикали
2ЕН biClrUsed Количество используемых цветов
32Н biClImp Количество основных цветов
      RGB-QUAD
36Н n*4   Определение для n цветов с раскладкой
    rgbBlue 1 байт – интенсивность голубого цвета
    rgbGreen 1 байт – интенсивность зеленого цвета
    rgbRed 1 байт – интенсивность красного цвета
    rgbres 1 байт – резервный

 

Со смещением 1AH определяется количество основных плоскостей выводного устройства. Значение этого поля может быть равно 1 или 4 в зависимости от количества битовых плоскостей. В поле HbiBitCnt со смещением 1C записывается количество битов на один пиксел. 1 – определяет один бит на пиксел. В этом случае значение бита, равное 1 определяет один цвет пиксела, а 0 – второй цвет. Одному байту будет соответствовать восемь пикселов, 4 – определяет четыре бита на пиксел. В этом случае 1 байту соответствует 2 пиксела. Всего цветов – 16. 8 – определяет 1 байт на пиксел. Всего цветов 256. 24 – определяет 3 байта (24 бита) на пиксел. В 24 битах помещается число 224 (16 миллионов). Это может соответствовать такому же количеству цветов. Поскольку такая палитра была бы очень большой, практически оставляют 256 цветов от 0 до 255. При этом каждый цвет определяется тремя байтами, соответствующими соответственно красному, зеленому и синему цветам. В каждом байте определяется доля соответствующего цвета. При 24-битовом представлении данных графического изображения палитра в BITMAP_INFO – блоке отсутствует.

Существуют следующие способы сжатия (упаковки) данных в файлах ВМР:

BI_RGB – данные не упакованы

BI_RLE8 – используется способ Run_Length – Encoding (RLE) (для битовой карты с 8 битами на пиксел)

BI_RLE4 – используется способ Run_Length – Encoding (RLE) (для битовых карт с 4 битами на пиксел).

Этим типам сжатия соответствуют следующие константы

BI_RGB=0; BI_RLE8=1; BI_RLE4=2

Эти константы записаны в поле «Тип сжатия данных» со смещением 1EН. Поле «bisizeImage» (смещение 22) задает длину области данных упакованных битовой карты в байтах. Поля «bixPels на метр» и «biyPels на метр» определяют число Pels (picture elements на метр).

Поле «biClrUser» (смещение 2ЕН) определяет количество цветов палитры. При значении 0 используется вся палитра.

Со смещением 36Н начинается таблица с определением цветов. Каждый цвет задается указанием доли синего, зеленого и красного цвета. При этом на каждый шаг в палитре отводится по 4 байта, последний из которых остается не заполненным. Длина таблицы определяется количеством цветов.

 

Область данных

Графическое изображение отображается в области данных построчно. Между строками не должно быть разрывов. При необходимости доска дополняется нулевыми значениями справа до длины, кратной 32 битам. Кодировка изображения начинается с левого нижнего угла.

При необходимости данные могут хранится в сжатом виде.

Битовое RLE сжатие

1 способ. Длинные последовательности одинаковых битов представляются в виде записей каждая длиной 2 байта (рис. 10.18).

Рис. 10.18.

В счетчике (первый байт) указывается число повторений цвета, код которого записан во второй байт. Например, запись 03 08 означает трехкратное повторение цвета 08:080808. Счетчик может принимать значения от 0 до 255.

2 способ. Этот способ указывается нулевыми значениями первого байта. Во втором байте записано число в интервале [0; FFH], указывающей число байтов данных. Каждый такой байт содержит номер цвета, использованного для изображения определенной точки. Например 00 030F12E3 означает, что изображение состоит из трех подряд расположенных точек, цвета которых равны соответственно: OF12E3.

В том случае если во втором способе второй байт равен целой величине с интервала [0; 2], то запись интерпретируется как ESCAPE – запись, с помощью которой отмечается конец строки или битовой карты, а также сдвиг последующей точки изображения относительно текущей (табл.10.6).

Таблица 10.6.Кодирование ESCAPE – записи

Содержимое счетчика Значения
Конец строки
Конец битовой карты
DeltaRecord – сдвиг последующей точки изображения относительно текущей.

 

Поле DeltaRecord состоит из 4 байтов следующей структуры 00 02.XX YY

XX означает смещение в пикселах по горизонтали, а YY смещение по вертикали. Например, запись 02 55 0611 0003 01 05А7 0002 06 08 интерпретируется так

55 55

11 11 11 11 11 11

01 05A7

Сдвиг на 6 пикселов по оси X и на 8 пикселов вдоль оси Y.

 

Битовое RLE – сжатие

Настоящее кодирование абсолютно такое же, что и 8-битовое RLE – кодирование. Если значение первого байта лежит в интервале [0,255], то первый байт содержит число повторений информации, содержащейся во втором байте. При этом вначале считываются те же старшие четыре бита и т.д., до достижения числа точек, указанного в счетчике повторений. Например, запись 04 8F будет интерпретироована так: 8F 8F, а запись 03FF так: FFF.

Если первый байт равен 00, то при значении второго байта от 0 до 0FFH он интепретируется как счетчик. В n последующих байтах будет храниться информация о 2n точках графического изображения. Последовательность байтов должна заканчиваться на границе слова. Если второй байт равен 0, 1, 2, то как и в случае 8-битового RLE – кодирование он определяет ESCAPE – последовательность.

На рис. 10.19 представлен фрагмент дампа ВМР – файла.

 

Рис.10.19

 

Здесь, согласно кодовой таблице 6.8, коды 42 и 4D – метка файла BM, число 22С37D00 -длина файла в байтах и т.д. в соответствии с описанием.

Контрольные вопросы

1.Как описываются пространственные объекты в ГИС и ЗИС?

2.Какие бывают типы данных и их источники в ГИС и ЗИС?

3. Дайте определение слоя информации.

4.Назовите способы векторного представления данных.

5.Дайте определение растровой модели данных.

6.Какие бывают способы сжатия растровых данных?

7.Приведите краткую характеристику регулярных и нерегулярных моделей данных.

8.Дайте краткую характеристику растровых форматов данных РСХ, ВМР.

 

Картографическая основа ГИС









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.