КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - Описание формата PCX и некоторых утилит PC Paintbrush

Индекс материала
Описание формата PCX и некоторых утилит PC Paintbrush
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Все страницы
                          - 1 -

   ОПИСАНИЕ ФОРМАТА PCX И НЕКОТОРЫХ УТИЛИТ PC PAINTBRUSH

  Перевод с английского языка и форматирование выполнены
    сотрудником Института прикладной математики АН СССР
                       А.Самотохиным

От переводчика
ДДДДДДДДДДДДДД
     Исходный документ был получен мною из JVDialuge 1st BBS
10.09.1991,  переведен  на  русский  язык  и отформатирован.
Некоторые  части  документа,  не  относящиеся  к технической
информации при переводе были опущены.  Там, где я считал это
необходимым, я снабдил перевод своими комментариями.


                          - 2 -

     Техническое  описание  включает  информацию о следующих
программах:

Publisher's Paintbrush~
PC Paintbrush~ Plus
PC Paintbrush
FRIEZE Graphics~


ZSoft Corporation
450 Franklin Rd. Suite 100
Marietta, GA  30067
(404) 428-0008
Copyright 1988 ZSoft Corporation

                          - 3 -

                        СОДЕРЖАНИЕ

Введение.......................................... 4
Формат файла изображения (.PCX)................... 5
Декодирование файлов в формате .PCX............... 7
Описание информации о палитре..................... 8
Формат матричного шрифта PC Paintbrush............ 9
Примеры программ на C.............................10
Техническая информация об утилите FRIEZE..........12
Спецификация FRIEZE для версий ранее 7.00.........12
Вызов функций FRIEZE для версий ранее 7.00........13
Коды ошибок FRIEZE для версий ранее 7.00..........14
Спецификация FRIEZE для версий начиная с 7.00.....14
Вызов функций FRIEZE для версий начиная с 7.00....15
Коды ошибок FRIEZE для версий начиная с 7.00......17
.PCX Programmer's Toolkit.........................18

                          - 4 -

                         Введение

    Цель  создания  данного  буклета  состоит  в  том, чтобы
помочь пользователям и разработчикам программ разобраться  в
технических аспектах  формата .PCX  и использования  утилиты
FRIEZE. Все  комментарии, вопросы  и предложения  по буклету
направляйте по адресу:

ZSoft Corporation
Technical Support Department
ATTN: Technical Reference Manual
450 Franklin Rd. Suite 100
Marietta, GA  30067

                          - 5 -

              Формат файла изображений (.PCX)

    Информация данного раздела  будет полезна для  вас, если
вы  хотите  написать  программу  для  чтения  или записи PCX
файлов. Если  вы хотите  написать программу  для изображений
строго  определенного  формата,  вы  должны быть в состоянии
создать нечто такое, что  будет работать вдвое быстрее,  чем
"Load from..." в  PC Paintbrush. Файлы  изображений, которые
используются в продуктах семейства PC Paintbrush и FRIEZE (с
расширениями .PCX) начинаются  с заголовка длиной  128 байт.
Обычно вы можете игнорировать этот заголовок, если все  ваши
изображения будут  иметь одинаковое  разрешение. Если  же вы
хотите обрабатывать  изображения с  различным разрешением  и
разным   количеством   цветов,    вам   следует    корректно
интерпретировать информацию, находящуюся в данном заголовке.
Оставшаяся   часть   файла   с   изображением   состоит   из
закодированных   графических    данных.   При    кодировании
используется простой алгоритм, основанный на методе  длинных
серий. Мы оставляем за собой право изменять этот алгоритм  с
целью повышения эффективности упаковки данных. Если в  файле
запоминается  несколько   цветовых  слоев,   каждая   строка
изображения запоминается по  цветовым слоям (в  общем случае
красному-R, зеленому-G, синему-B и слою интенсивности-I)  по
схеме, приведенной ниже:

Строка изображения 0:
 = X

                          - 6 -

    Поскольку для  насыщения данного  алгоритма требуется  в
среднем 25% неповторяющихся данных и по меньшей мере наличие
смещения между повторяющимися данными, то размер получаемого
файла, как правило оказывается приемлемым. Формат  заголовка
файла приведен ниже.

Замечание переводчика
ДДДДДДДДДДДДДДДДДДДДД
     Под  насыщением  алгоритма  авторы  документа  по  всей
видимости понимают ситуацию, когда размер получаемого  файла
оказывается  больше,  чем  объем  требуемой видео памяти для
представления записанного изображения. Нужно отметить, что с
этой  точки  зрения  формат  PCX,  безусловно,  не лучший. В
частности, такое насыщение достаточно часто имеет место  для
цветных  реалистичных  изображений,  особенно,  если  при их
создании применялись методы полутонирования.

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

Все переменные длины 2 являются целыми.

Замечание переводчика
ДДДДДДДДДДДДДДДДДДДДД
    Во  избежание  недоразумений:   в  поле  Window   после-
довательно   располагаются    4   целых    числа,    которые
соответствуют  угловым  координатам  изображения Xmin, Ymin,
Xmax, Ymax. Как правило, Xmin и Ymin = 0.

                          - 7 -

            Декодирование файлов в формате PCX

    Сначала определите размер изображения, вычислив
      [XSIZE = Xmax - Xmin + 1] и
      [YSIZE = Ymax - Ymin + 1].
Затем  вычислите,  сколько  байтов  требуется для сохранения