Некоторые, например gvim, ca n отображать изображения xpm в графической форме | |
Расширение имени файла | .xpm |
---|---|
Тип интернет-носителя | image / x-xpixmap |
Разработано | BULL Research |
Тип формата | Форматы файлов изображений |
Расширенный из | XBM |
Открытый формат ? | да |
X PixMap (XPM ) - это формат файла изображения используется системой X Window System, созданной в 1989 году Дэниелом Дардайлером и Коласом Нахабу, работающими в Bull Research Center в Sophia Antipolis, Франция, а затем усовершенствованной Автор Arnaud Le Hors.
Он предназначен в первую очередь для создания icon растровых изображений и поддерживает прозрачных пикселей. Полученный из более раннего синтаксиса XBM, это файл простого текста в формате XPM2 или синтаксисе языка программирования C, который может быть включен в файл программы C.
Формат XPM - это массив строк, состоящий из шести различных разделов, как показано ниже:
static char *= { };
Это черно-белое изображение в первом (1989 г.) формате XPM.
#define XFACE_format 1 #define XFACE_width 48 #define XFACE_height 48 #define XFACE_ncolors 2 #define XFACE_chars_per_pixel 1 статический символ * XFACE_colors = {"a", "#ffffff", "b"}; "# 000000" static char * XFACE_pixels = {"abaabaababaaabaabababaabaabaababaaababaabaaab", // и так далее для 48 строк с 48 пикселями
Раздел значений содержит ширину, высоту, количество цветов и количество символов на пиксель.
XPM2 упрощает формат, удаляя весь код C. Пример:
! XPM2 48 4 2 1 a c #FFFFFF b c # 000000 abaabaababaaabaabababaabaabaababaaababaabaaab abaabaababaaabaabababaabaabaababaaababaabaaab abaabaababaaabaabababaabaababaaababaabaaab abaabaababaaabaababaabaabaababaaababaabaaab abaabaababaaabaababaabaabaababaaababaabaaab abaabaababaaababababaaababaaababaaababababababaaababaaababaaabababababababa Известно, что один инструмент использует только a - p для 16 цветов, переключаясь на aa до dp для 64 цветов, но все же чтение односимвольных кодировок для 64 цветов; сравнить Base64.Чем больше цветов, тем больше символов, например aa до pp для 16 × 16 = 256 цветов. Это менее полезно для текстовых редакторов, потому что строка ab может быть фактически серединой двух соседних пикселей dabc . В качестве цветового кода можно использовать пробелы, но это может быть плохой идеей в зависимости от используемого текстового редактора. Без управляющих кодов, обратной косой черты и кавычек (требуется в XPM1 и XPM3) 128 - 33 - 2 = 93 ASCII символа доступны для односимвольных цветовых кодов.
Упрощенный пример: 90 символов US-ASCII могут быть организованы в девять неперекрывающихся наборов по 10 символов. Таким образом, однозначные строки из девяти символов могут задавать цвет каждого пикселя по его индексу палитры XPM до 10 = 1000000000 цветов (сравните с GIF, который поддерживает только 256).
Для XPM2 ясно, сколько строк принадлежит изображению - две строки заголовка, вторая строка заголовка объявляет количество цветовых кодов (2 строки в примере выше) и строки (высота 4 в примере выше.), например 2 + 2 + 4 = 8 строк.
XPM3Другие стили XPM1 и XPM3 предназначены для использования в исходном коде C, например:
/ * XPM * / static char * XFACE = {/ ** / / * * / «48 4 2 1», / * * / «ac #ffffff», «bc # 000000», / * * / «abaabaababaaabaabababaabaabaababaaababaabaaab», «abaabaababaaabaababaabaabaababaaababaabaaab "," abaabaababaaabaabababaabaabaababaabaaababaabaaab "," abaabaababaaabaabababaabaabaabaababaaababaabaaab "}; Последний формат - XPM3, общий формат, используемый для X Window System примерно с 1991 года. c означает «цвет», можно добавить m для «монохромного» вывод, g для «оттенков серого» и s для «символического», объясняя, что должен делать определенный цвет.
В дополнение к именам цветов X11 имя
none
указывает на прозрачность.«Символьная» функция позволяет настраивать цвета в зависимости от контекста, в котором Они используются. Код, такой как
s border c blue
, можно отрегулировать на синем фоне.Если ширина, высота, цвета и символы на пиксельную строку содержат шесть вместо четырех чисел, дополнительные значения указывают координаты «горячей точки», 0 0 - верхний левый угол поля, содержащего значок и значение по умолчанию. «Точка доступа» используется для указателей мыши и подобных приложений.
Сравнение с другими форматамиФайл Blarg, открытый в окне программыСледующий код отображает тот же файл blarg в форматах XBM, XPM и PBM.
Версия XBM:
#define test_width 16 #define test_height 7 static char test_bits = {0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80, 0x00, 0x60};Blarg.xpm (XPM2), обработанный XnViewверсия XPM2:
! XPM2 16 7 2 1 * c # 000000. c #ffffff **.. *........... *. *. *........... **.. *.. **. **.. * * *. *. *. *. *. *.. *. * **.. *.. **. *... **............... *............. **.. Версия XPM3:
/ * XPM * / static char * blarg_xpm = {"16 7 2 1", "* c # 000000", ". C #ffffff", "**.. *........... "," *. *. *........... "," **.. *.. **. **.. ** "," *. *. *. *. *. *.. *. * "," **.. *.. **. *... ** ","............... * ","............. **. " };Файл PBM:
P1 16 7 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0Поддержка приложенийACDSee, CorelDRAW, GIMP, ImageMagick, IrfanView (плагин форматов), PaintShop Pro, Photoshop (плагины) и XnView среди прочего поддерживает XPM. Gravatar и picons также поддерживают XPM.
Уязвимость X11 libXpm было исправлено в 2005 году. FFmpeg версии 3.3 или более поздней может декодировать XPM.
См. Также