.PCX вариант №
Файл PCX, файл Picture Exchange, представляет собой формат файла растрового изображения, который использовался в качестве собственного формата файла для приложения PC Paintbrush. Он был разработан корпорацией ZSoft, США, для платформ DOS и Windows и был принят в качестве основного формата файла изображения до появления BMP, JPEG и Форматы файлов PNG. Файлы PCX имеют меньший размер, поскольку они сжаты с использованием кодировки RLE. Он используется в многостраничном файле DCX, который в основном используется для создания файлов цифровых факсов.
Формат файла PCX
Файлы PCX сохраняются на диск в двоичном формате. Структура внутреннего формата файла соответствует порядку байтов с прямым порядком байтов и состоит из следующих трех разделов:
Заголовок PCX
— длина заголовка PCX составляет 128 байт. Он содержит идентификатор, номер версии, размеры изображения, 16 цветов палитры, количество цветовых плоскостей и разрядность каждой плоскости, а также значение метода сжатия.
Заголовок PCX показан ниже со ссылкой на Энциклопедию форматов графических файлов (2-е изд.).
typedef struct _PcxHeader
{
BYTE Identifier; /* PCX Id Number (Always 0x0A) */
BYTE Version; /* Version Number */
BYTE Encoding; /* Encoding Format */
BYTE BitsPerPixel; /* Bits per Pixel */
WORD XStart; /* Left of image */
WORD YStart; /* Top of Image */
WORD XEnd; /* Right of Image
WORD YEnd; /* Bottom of image */
WORD HorzRes; /* Horizontal Resolution */
WORD VertRes; /* Vertical Resolution */
BYTE Palette[48]; /* 16-Color EGA Palette */
BYTE Reserved1; /* Reserved (Always 0) */
BYTE NumBitPlanes; /* Number of Bit Planes */
WORD BytesPerLine; /* Bytes per Scan-line */
WORD PaletteType; /* Palette Type */
WORD HorzScreenSize; /* Horizontal Screen Size */
WORD VertScreenSize; /* Vertical Screen Size */
BYTE Reserved2[54]; /* Reserved (Always 0) */
} PCXHEAD;
Image Data
— данные изображения PCX следуют сразу после заголовка. Данные изображения могут быть сжаты в зависимости от настройки поля в заголовке. Хранение данных в файле PCX зависит от количества указанных цветовых плоскостей. Данные изображения организованы в строки. В случае нескольких плоскостей они хранятся по плоскостям в строке в последовательном порядке красных, зеленых и синих данных. Этот шаблон повторяется для каждой строки на плоскости.