Открыть сервис

Формат PCX

PCX — это растровый графический формат файлов, разработанный компанией ZSoft Corporation для хранения цифровых изображений. Формат использует сжатие без потерь на основе алгоритма кодирования длин серий (RLE) и поддерживает различные цветовые режимы, включая монохромный, индексированные палитры и полноцветные изображения. PCX был одним из первых стандартных форматов для графических редакторов, работающих в операционной системе MS-DOS, и получил широкое распространение в 1980-х — начале 1990-х годов, особенно в среде IBM PC-совместимых компьютеров.

История

Формат PCX был создан в 1982 году компанией ZSoft Corporation для своего графического редактора PC Paintbrush. Изначально он предназначался для работы с монохромными изображениями и поддерживал только чёрно-белую палитру. С развитием аппаратного обеспечения и появлением цветных дисплеев (CGA, EGA, VGA) формат был расширен: в версии 2.0 (1984) добавлена поддержка 16-цветных изображений, в версии 3.0 (1985) — 256-цветных, а в версии 5.0 (1991) — полноцветных (24-битных) изображений.

PCX стал стандартом де-факто для обмена графикой в среде MS-DOS, поскольку PC Paintbrush был предустановлен на многих IBM PC-совместимых компьютерах. Формат активно использовался в программах для рисования, сканирования изображений и в играх того времени. Однако с распространением более эффективных форматов, таких как GIF, JPEG и PNG, популярность PCX пошла на спад. К середине 1990-х годов он был вытеснен из массового использования, хотя некоторые старые приложения и сканеры продолжали его поддерживать.

Структура файла

Файл PCX состоит из трёх основных частей: заголовка, данных растрового изображения и необязательной палитры. Структура строго фиксирована и не допускает вариаций для разных версий.

Заголовок

Заголовок PCX имеет длину 128 байт и содержит метаданные об изображении. Основные поля включают:

  • Идентификатор (1 байт) — всегда равен 0x0A (число 10), что служит маркером формата.
  • Версия (1 байт) — указывает версию формата: 0 — версия 2.5, 2 — версия 2.8 с палитрой, 3 — версия 2.8 без палитры (стандартная), 5 — версия 3.0 и выше (с 24-битной поддержкой).
  • Метод кодирования (1 байт) — всегда равен 1 (RLE-сжатие).
  • Бит на пиксель (1 байт)глубина цвета: 1 для монохромных, 4 для 16-цветных, 8 для 256-цветных, 24 для полноцветных изображений.
  • Размеры изображения (8 байт) — координаты левого верхнего (Xmin, Ymin) и правого нижнего (Xmax, Ymax) углов в пикселях. Ширина вычисляется как Xmax - Xmin + 1, высота — как Ymax - Ymin + 1.
  • Разрешение (4 байта) — горизонтальное и вертикальное разрешение в точках на дюйм (DPI), обычно 72 или 96.
  • Палитра (48 байт) — 16 записей по 3 байта (RGB) для 16-цветных изображений. Для 256-цветных изображений палитра хранится в конце файла.
  • Зарезервированные поля — заполняются нулями.

Данные изображения

После заголовка следуют строки растровых данных, сжатые с помощью алгоритма RLE. Каждая строка изображения кодируется отдельно. Принцип сжатия:

  • Если два старших бита байта равны 11 (значение байта >= 192), то этот байт является счётчиком повторов. Младшие 6 бит указывают количество повторений следующего байта (от 1 до 63).
  • Если два старших бита не равны 11, байт интерпретируется как пиксельное значение без сжатия.

Для монохромных и 16-цветных изображений данные упаковываются в плоскости (planes). Количество плоскостей указывается в заголовке: 1 для монохромных, 4 для 16-цветных (по одной на каждый бит цвета), 3 для 24-битных (RGB). Для 256-цветных изображений используется одна плоскость.

Палитра

Для 256-цветных изображений (версия 5.0) палитра хранится в конце файла, после всех строк данных. Она начинается с байта-маркера 0x0C (число 12), за которым следуют 768 байт (256 записей по 3 байта RGB). Для 16-цветных изображений палитра встроена в заголовок. 24-битные изображения не используют палитру — цвета задаются непосредственно в данных.

Характеристики

Цветовые режимы

PCX поддерживает следующие цветовые режимы:

  • Монохромный (1 бит на пиксель) — чёрно-белые изображения без оттенков серого.
  • 16 цветов (4 бита на пиксель)индексированная палитра, где каждый пиксель ссылается на один из 16 цветов, определённых в заголовке.
  • 256 цветов (8 бит на пиксель) — индексированная палитра, хранящаяся в конце файла.
  • 24-битный полноцветный (24 бита на пиксель) — три плоскости (R, G, B) по 8 бит каждая, без палитры.

Сжатие

Сжатие RLE в PCX является простым и эффективным для изображений с большими однородными областями (например, текст, диаграммы). Однако для фотографических изображений с множеством мелких деталей коэффициент сжатия низкий, а иногда файл может быть даже больше несжатого. В отличие от форматов PNG или JPEG, PCX не использует статистические методы (например, LZW или Хаффмана), поэтому его степень сжатия ограничена.

Ограничения

  • Максимальный размер изображения — 65535 x 65535 пикселей (из-за 16-битных координат в заголовке).
  • Отсутствие поддержки прозрачности (альфа-канала).
  • Отсутствие поддержки цветовых профилей (ICC).
  • Невозможность хранения нескольких страниц или анимации.
  • Неэффективное сжатие для сложных изображений.

Применение

В 1980-х — начале 1990-х годов PCX был одним из основных форматов для хранения и обмена растровой графикой в среде MS-DOS. Он использовался в следующих областях:

  • Графические редакторы — PC Paintbrush, Microsoft Paint (ранние версии), CorelDRAW (импорт/экспорт).
  • Сканирование изображений — многие сканеры того времени по умолчанию сохраняли результаты в формате PCX.
  • Компьютерные игры — для хранения спрайтов, текстур и фонов, особенно в играх для EGA и VGA.
  • Настольные издательские системы — для вставки иллюстраций в документы.

С развитием более совершенных форматов (GIF, PNG, JPEG) PCX вышел из активного употребления. В настоящее время он поддерживается большинством современных графических редакторов (Adobe Photoshop, GIMP, IrfanView) в режиме импорта/экспорта, но используется редко, в основном для работы со старыми архивами или в специализированных приложениях.

Сравнение с другими форматами

ХарактеристикаPCXBMPGIFPNG
СжатиеRLE (без потерь)RLE (опционально)LZW (без потерь)Deflate (без потерь)
Глубина цвета1, 4, 8, 24 бита1–32 бита1–8 бит1–48 бит
ПрозрачностьНетНетДа (1 бит)Да (альфа-канал)
АнимацияНетНетДаНет (APNG — редко)
Макс. размер65535×65535Зависит от версии65535×655352^31×2^31
ПопулярностьИсторическаяВысокая (Windows)СредняяВысокая

PCX уступает современным форматам по эффективности сжатия и функциональности, но остаётся значимым с исторической точки зрения.

Совместимость

Файлы PCX могут быть открыты в большинстве современных операционных систем с помощью стандартных программ просмотра изображений или графических редакторов. В Windows 10 и 11 встроенное приложение «Фотографии» не поддерживает PCX, но файлы можно открыть в IrfanView, XnView, GIMP или Adobe Photoshop. В Linux формат поддерживается библиотекой ImageMagick и большинством программ на основе GTK.

Интересные факты

  • Формат PCX был одним из первых, который использовал сжатие RLE для растровых изображений на персональных компьютерах.
  • Изначально PCX не поддерживал 256-цветные изображения — эта возможность была добавлена только в версии 3.0, когда видеокарты VGA стали массовыми.
  • В файлах PCX версии 2.8 палитра для 16-цветных изображений могла отсутствовать, и цвета задавались по умолчанию (EGA-палитра).
  • Несмотря на устаревание, PCX до сих пор используется в некоторых промышленных системах и старых медицинских устройствах для хранения снимков.

Источники

  • Murray J. D., van Ryper W. Encyclopedia of Graphics File Formats. — 2nd ed. — O'Reilly Media, 1996. — ISBN 1-56592-161-5.
  • ZSoft Corporation. PC Paintbrush Technical Reference Manual. — 1991.
  • W3C. Portable Network Graphics (PNG) Specification. — 2003.
  • Статья «PCX» в англоязычной Википедии (версия от 10 января 2024 года).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →