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><пробел><значение>. Например: "`. 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 обладает рядом достоинств и недостатков которые отличают его от других форматов: Формат X Pixmap соответствует серверной части X-протокола, практически во все функции Xlib передаётся параметр drawable, который может означать или окно Window, или XPixmap. Форматом клиентской стороны хранения изображений является XImage.
Использование в коде Достаточно включить файл и можно использовать переменную (для примера это green_simple_cross_xpm): #include "image.xpm" X Pixmap может использоваться не только для приложений X Window, а также в кроссплатформенных средах разработки. Например, поддержка этого формата полностью реализована в библиотеке wxWidgets.Глава X. Работа с Изображениями. Часть 1 Перевод книги Julian Smart
Примечания
Категория:Графические форматы