Меню

Главная
Случайная статья
Настройки
X Pixmap
Материал из https://ru.wikipedia.org

X Pixmap (XPM) — текстовый формат графических файлов. Используется серверной стороной системы X Window. Главной особенностью формата является то, что он использует семантику языка Си и может быть включён в код. Разработан в 1989 году Daniel Dardailler и Colas Nahaboo из Bull Research Center в София Антиполисе (Франция). Позже был усовершенствован Arnaud Le Hors.

Содержание

Формат файла

Файл состоит из описания массива строк из 6 разделов формата:
static char* <variable_name>[] = {
<Values>,
<Colors>,
<Pixels>,
<Extensions>
};


Значения (Values)

Описывает параметры изображения значениями, разделёнными пробелами: ширина, высота, число цветов, знаков на каждый цвет. Например:
" 5 3 256 2",


Цвета (Colors)

Таблица цветов описывает соответствие символов цветам. Формат <символы><пробел><пробел><значение>. Например:
"`. c #ffffff",
"`# c #ff0000",
"`a c #6b6b6b"


Пиксели

Строки, состоящие из символов, описанных в таблице цветов. Например, красный квадрат размером 3 на 3 пикселя на белом поле 5 на 3 пикселя:
"`.`#`#`#`.",
"`.`#`#`#`.",
"`.`#`#`#`."


Прозрачность

Формат поддерживает 1 прозрачный цвет, который в таблице цветов описывается как None. Например:
"`. c None",


Пример изображения

Это изображение выглядит в формате xpm так:
/* XPM */
static char *green_simple_cross_xpm[] = {
/* width height num_colors chars_per_pixel */
" 36 36 5 1",
/* colors */
"` c #ffffff",
". c #00ff00",
"# c #ff0000",
"a c #000000",
"b c #0000ff",
/* pixels */
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"````````````............############",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"....................................",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb",
"aaaaaaaaaaaa............bbbbbbbbbbbb"
};


Свойства X Pixmap

Формат X Pixmap обладает рядом достоинств и недостатков которые отличают его от других форматов:
  1. Формат X Pixmap соответствует серверной части X-протокола, практически во все функции Xlib передаётся параметр drawable, который может означать или окно Window, или XPixmap.
  2. Форматом клиентской стороны хранения изображений является XImage.


Использование в коде

Достаточно включить файл и можно использовать переменную (для примера это green_simple_cross_xpm):
#include "image.xpm"


X Pixmap может использоваться не только для приложений X Window, а также в кроссплатформенных средах разработки. Например, поддержка этого формата полностью реализована в библиотеке wxWidgets.[1]

Примечания
  1. Глава X. Работа с Изображениями. Часть 1 Архивная копия от 28 июня 2010 на Wayback Machine Перевод книги Julian Smart
Downgrade Counter