Лабораторная работа: Бібліотека ASM-86 для перегляду графіки в стандартах BMP та PCX

Метод кодування полягає в наступному:

ДЛЯ кожного байта X, прочитаного з файлуЯКЩО обоє старших біта X рівні 1, то<повторювач> = 6 молодшим биткам X<дані> = наступному байту за XІНАКШЕ<повторювач> = 1<дані> = X

Формат заголовка 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 Заповнюється нулями до кінця заголовка

Декодування файлів у форматі PCX

Спочатку визначите розмір зображення, обчисливши

[XSIZE = Xmax - Xmin + 1] і [YSIZE = Ymax - Ymin + 1].

Потім обчислите, скільки байтів потрібно для збереження одного незжатого рядка розгорнення зображення:

TotalBytes = NPlanes * BytesPerLine

Відзначимо, що оскільки завжди використовується ціле число байтів, можливе існування невикористовуваних даних наприкінці кожного рядка розгорнення. TotalBytes показує скількох пам'ятей повинне бути доступно для декодування кожного рядка розгорнення, включаючи невикористовувану інформацію на правому кінці кожного рядка.

К-во Просмотров: 396
Бесплатно скачать Лабораторная работа: Бібліотека ASM-86 для перегляду графіки в стандартах BMP та PCX