Перетворення форматів графічних файлів
У версії три далі йде 40-байтовий додатковий заголовок:
Typedef struct BITMAPHEADER {
UINT32 size;Розмір цього заголовку у байтах
INT32 width;Ширина зображення в пікселях
INT32 height;Висота зображення в пікселях
UINT16 numBitPlanes;Кількість площин
UINT16 numBitsPerPlane;Кількість бітів на піксель
UINT32 compressionScheme;Тип стиснення
UINT32 sizeOfImageData;Розмір растру у байтах
UINT32 xResolution;Горизонтальна роздільна здатність у пікселях на метр
UINT32 yResolution;Вертикальна роздільна здатність у пікселях на метр
UINT32 numColorsUsed;Кількість кольорів у зображенні
UINT32 numImportantColors;Кількість важливих кольорів
}
Після заголовків йдуть дані 24-бітового зображення у форматі RGB, але на відміну від PCX, площини не використовуються і триплети кольорів йдуть один за одним.
Опис програми
Розглянемо програму перетворення растрового зображення з формату PCX у BMP рядок за рядком. Повний лістінг програми див. у додатку 1.
uses
crt;
Додатковий стандартний модуль crt використовується для позиціонування текстового курсора та очищення рядку.
Далі визначаються змінні:
var
PCXF, BMPF: file;
Нетипізовані файли для зчитування та запису інформації.
PCXheader: array [0..127] of byte;