501.00K
Category: informaticsinformatics

Лекция 6. Форматы графических файлов: растровые, векторные. Форматы BMP, PCX, TGA

1.

Лекция 6
Форматы графических файлов
Нижельский С.С.,
ст. преп. каф. СИУ
Новокузнецк, 2008

2.

Формат графических файлов
Формат графических файлов – это набор методов, правил,
предназначенных для представления, хранения, обработки и
распространения изображений, представленных в цифровой форме
Форматы графических файлов можно разделить на виды:
• растровые –
BMP, CUR, IMG, JPEG, PIC, PNG, PSD, PCX, PIX,
KDC, TGA, TIFF и др.;
• векторные –
DXF, DWG, SYLK, MIF-MID и др.;
• хранят растровое и векторное представление – AI, CDR, FH7, PICT
и др.;
• метафайлы –
CGM, EMF, PDF, WMF и др.

3.

Растровые форматы
Некоторые характеристики распространенных растровых форматов
Формат
Фирмаразработчик
Максимальное
количество цветов
(бит на пиксел)
Максимальный
размер
изображения
Метод
сжатия
Запись
нескольких
изображений
BMP
Microsoft
16 777 216 (24)
65535 65535
RLE (используется
редко)
GIF
CompuServe
256 (8)
65535 65535
LZW
+
JPEG
Joint Photographic
16 777 216 (24)
Experts Group
65535 65535
JPEG
PCX
Z-Soft
16 777 216 (24)
65535 65535
RLE
PNG
W3C
281 474 976 710 656
(48)
2147483647
2147483647
Deflate
TGA
TrueVision
4 294 967 296 (32)
65535 65535
RLE
TIFF
Aldus Corp.
16 777 216 (24)
65535 65535
LZW, RLE,
JPEG и др.
+

4.

Формат BMP
Общая структура BMP-файла:
BitMapFileHeader
BitMapInfoHeader
Палитра
Битовый массив растрового
изображения
BitMapFileHeader – заголовок файла, содержит общее описание
Название
поля
Длина в байтах
Значение
bfType
2
код формата (содержит символы “BM”
bfSize
4
общий размер файла в байтах
bfReserved1
2
зарезервировано (значение 0)
bfReserved2
2
зарезервировано (значение 0)
bfOffBits
4
адрес битового массива в данном файле

5.

Формат BMP
BitMapInfoHeader – дополнительный заголовок, содержит описание размеров
растра и цветового формата пикселов
Название поля
Длина в байтах
Значение
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
разрешающая способность по X в пикселах на метр
biYPelsPerMeter
4
разрешающая способность по Y в пикселах на метр
biClrUsed
4
0 – используется максимальное число цветов
biClrImportant
4
0, если biClrUsed = 0

6.

Формат BMP
Палитра – формируется в виде записей RGBQuad, количество которых
соответствует количеству используемых цветов.
Каждая запись RGBQuad имеет следующую структуру:
Название поля
Длина в байтах
Значение
rgbBlue
1
цветовой компонент B, от 0 до 255
rgbGreen
1
компонент G, от 0 до 255
rgbRed
1
компонент R, от 0 до 255
rgbReserved
1
0 (не используется)
Затем записывается растр в виде битового массива
Количество байтов в каждой строке массива должно быть кратным четырем
BMP-файлы с компрессией могут иметь расширение *.dib или *.rle

7.

Формат PCX
Формат PCX основывается на одном из вариантов алгоритма сжатия RLE
Run Length Encoding
Если в строках растра встречаются цепочки одинаковых пикселов, например
2 2 2 2 2 2 2 135 11 11 11 11
то их заменяют парами чисел – <счетчик повторений, значение>
<7 2> 135 <4 11>
Признаком счетчика для формата PCX служат единицы в двух левых битах
текущего байта кодированного массива
(11xxxxxx)
Отдельные байты вида 11xxxxxx кодируются парой байтов
<счетчик, значение> = <11000001, 11xxxxxx>

8.

Формат PCX
Формат PCX
удобен для хранений изображений деловой графики (чертежей,
диаграмм, схем и т.п.)
плохо подходит для хранения цветных фотографий (возможно
увеличение объема памяти, занимаемого изображением)
Улучшить параметры сжатия методом RLE для формата PCX можно
правильным выбором палитры:
назначать индексы вида 11xxxxxx редко встречающимся в данном
растре цветам

9.

Формат PCX
Например:
0f
3f
fb
d0
d0
c6
c4
c3
c3
c2
c2
c2
c2
c2
c3
c3
c4
c6
d0
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
c4
c8
ca
ca
c3
c2
c3
cc
cc
c2
c3
c8
c4
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
c6
c4
c3
c3
c1
c3
c1
c2
c2
c1
c4
c4
c6
0f
0f
0f
0f
fb
fb
fb
0f
0f
fb
fb
0f
0f
c4 3f c1 fb c3 3f c2 0f
c2 3f c3 fb c2 3f c2 0f
c4 3f c1 fb c3 3f c2 0f
c4 3f c1 fb c2 3f c3 0f
c3 3f c3 0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
0f
0f
0f
0f
3f
3f
3f
3f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
0f
3f
3f
3f
3f
fb
3f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
3f
3f
3f
fb
fb
fb
3f
3f
fb
3f
3f
0f
0f
0f
0f
3f
3f
3f
3f
3f
fb
3f
3f
3f
3f
fb
3f
3f
0f
0f
0f
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
fb
3f
3f
0f
0f
0f
3f
3f
3f
3f
3f
3f
3f
3f
3f
3f
fb
3f
3f
0f
0f
0f
3f
3f
3f
3f
3f
fb
3f
3f
3f
3f
fb
3f
3f
0f
0f
0f
0f
3f
3f
3f
fb
fb
fb
3f
3f
fb
3f
3f
0f
0f
0f
0f
0f
3f
3f
3f
3f
fb
3f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
0f
3f
3f
3f
3f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
0f
0f
0f
0f
3f
3f
3f
3f
3f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f
0f

10.

Формат PCX
Общая структура PCX-файла:
Заголовок
Кодированный массив растра
Разделитель
256-цветная
палитра
Смещение
Длина в байтах
Примечание
0
1
байт идентификации 0AH
1
1
версия файла PCX: 0 – версия 2.5; 2 – 2.8 с палитрой; 3 – 2.8 без палитры; 5
– версия 3.0
2
1
ключ кодирования данных: 0 – без кодирования; 1 – кодир. RLE
3
1
количество битов на пиксел
4
8
координаты углов рисунка Xmin, Ymin, Xmax, Ymax
12
2
разрешающая способность по горизонтали
14
2
разрешающая способность по вертикали
16
48
описание пилитры
64
1
зарезервировано
65
1
количество битовых плоскостей
66
2
число байтов на строку изображения
68
2
параметры палитры: 1 – цветная; 2 – градации серого
70
58
пустые байты (для выравнивания до 128)

11.

Формат TGA
Формат TGA использует алгоритм сжатия RLE, отличающийся от
используемого в формате PCX
Если в строках растра встречаются последовательности одинаковых
пикселов, то они кодируются парой <счетчик, значение>
Признаком счетчика является единица в старшем бите (1xxxxxxx)
Неповторяемые значения байтов представляются литералами –
сначала идет счетчик элементов, а затем значения элементов
Старший бит счетчика равен нулю (0xxxxxxx)
Например, последовательность
71 197 197 197 197 197 197 197 241 16 72
кодируется следующим образом
1 71 135 197 3 241 16 72
English     Русский Rules