X PixMap - X PixMap

X PixMap
Снимок экрана-xterm-linux.xpm-GVIM.png
Немного текстовые редакторы, Например гвим, может отображать изображения xpm в графической форме
Расширение имени файла
.xpm
Тип интернет-СМИ
изображение / x-xpixmap[1]
РазработанБЫК Исследования
Тип форматаФорматы файлов изображений
Расширен сXBM
Открытый формат ?да

X PixMap (XPM) является формат файла изображения используется X Window System, созданный в 1989 году Даниэлем Дардайлером и Коласом Нахабу, работающими в Центр исследования быков в София Антиполис, Франция, а затем усовершенствован Арно Ле Орсом.[2][3]

Он предназначен в первую очередь для создания значок растровые изображения, и поддерживает прозрачные пиксели. Получено из более раннего XBM синтаксис, это простой текст файл в XPM2 формат или Язык программирования C синтаксис, который может быть включен в файл программы C.[2]

XPM

Формат XPM - это массив строк, состоящий из шести различных разделов:

статический 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статический char *XFACE_colors[] = {"а", "#ffffff","б", "#000000"};статический char *XFACE_pixels[] = {"abaabaababaaabaabababaabaabaabaababaaababaabaaab",// и так далее для 48 строк по 48 пикселей

Раздел значений содержит ширину, высоту, количество цветов и количество символов на пиксель.

XPM2

XPM2 упрощает формат, удаляя все C код. Пример:

! XPM248 4 2 1a c #FFFFFFb c # 000000abaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaaababaabaababaaabaabababaabaabaababaababaaababaabaaababaabaababaabaabaabaababababababaaababaaababaabaabaabaabaabaabaabababababaababa

Это файл XPM2 с шириной 48, высотой 4, 2 цветами и 1 символом на пиксель. Известно, что один инструмент использует только а к п для 16 цветов, переход на аа вплоть до дп для 64 цветов, но все еще считывает односимвольные кодировки для 64 цветов; сравнивать Base64.

Чем больше цветов, тем больше в кодах символов, например аа вплоть до pp для 16 × 16 = 256 цветов. Это менее полезно для текстовых редакторов, потому что строка ab может быть серединой двух соседних пикселей dabc. В качестве цветового кода можно использовать пробелы, но это может быть плохой идеей в зависимости от используемого текстового редактора. Без управляющих кодов, обратной косой черты и кавычек (требуется в XPM1 и XPM3) 128 - 33 - 2 = 93 ASCII символы доступны для односимвольных цветовых кодов.

Упрощенный пример: 90 символов US-ASCII могут быть организованы в девять неперекрывающихся наборов по 10 символов. Таким образом, однозначные строки из девяти символов могут установить цвет каждого пикселя по его индексу палитры XPM с максимум 109 = 1000000000 цвета (сравните с Гифка, который поддерживает только 256).

Для XPM2 ясно, сколько строк принадлежит изображению - две строки заголовка, вторая строка заголовка, объявляющая количество цветовых кодов (2 строки в примере выше) и строки (высота 4 в примере выше), например 2 + 2 + 4 = 8 строк.

XPM3

Другие стили XPM1 и XPM3 предназначены для использования в исходном коде C, например:

/ * XPM * /статический char * XFACE[] = {/ * <Значения> * // * <ширина / столбцы> <высота / строки> <цвета> <символов на пиксель> * /"48 4 2 1",/ * <Цвета> * /"c #ffffff","b c # 000000",/ * <Пиксели> * /"abaabaababaaabaabababaabaabaabaababaaababaabaaab","abaabaababaaabaabababaabaabaabaababaaababaabaaab","abaabaababaaabaabababaabaabaabaababaaababaabaaab","abaabaababaaabaabababaabaabaabaababaaababaabaaab"};

Последний формат - XPM3, общий формат, используемый для X Window System примерно с 1991 года. c означает "цвет", можно добавить м для «монохромного» вывода, грамм для "оттенков серого" и s для "символического", объясняющего, что должен делать определенный цвет.

В добавок к Названия цветов X11 название никто указывает на прозрачность.[4][5]

«Символьная» функция позволяет настраивать цвета в зависимости от контекста, в котором они используются. Код, такой как s граница c синий можно настроить на синем фоне.

Если ширина, высота, цвета и символы на пиксель строки содержат шесть вместо четырех чисел, дополнительные значения указывают координаты «горячей точки», 0 0 - это верхний левый угол поля, содержащего значок и значение по умолчанию. «Точка доступа» используется для указателей мыши и подобных приложений.

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

Файл Blarg открыт в окне программы

Следующий код отображает тот же файл blarg в XBM, XPM и PBM форматы.

Версия XBM:

#define test_width 16#define test_height 7статический char test_bits[] = {0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,0x00, 0x60 };
Blarg.xpm (XPM2), обработанный XnView

Версия XPM2:

! XPM216 7 2 1 * c # 000000. c #ffffff ** .. * ........... *. *. * ........... ** .. * .. **. ** .. * **. *. *. *. *. * .. *. *** .. * .. **. * ... ** ............... *. ............ **.


Версия XPM3:

/ * XPM * /статический char * blarg_xpm[] = {"16 7 2 1","* c # 000000",". c #ffffff","**..*...........","*.*.*...........","**..*..**.**..**","*.*.*.*.*.*..*.*","**..*..**.*...**","...............*",".............**."};

PBM файл:

P116 71 1 0 0 1 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 01 1 0 0 1 0 0 1 1 0 1 1 0 0 1 11 0 1 0 1 0 1 0 1 0 1 0 0 1 0 11 1 0 0 1 0 0 1 1 0 1 0 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0

Поддержка приложения

ACDSee, Amaya, CorelDRAW, GIMP, ImageMagick, IrfanView (плагин форматов), PaintShop Pro, Фотошоп (плагины) и XnView среди прочего поддерживает XPM.[6][7] Граватар и пиконы также поддерживает XPM.[8][9]

An X11 libXpm уязвимость был исправлен в 2005 году.[10] FFmpeg версия 3.3 или более поздняя может декодировать XPM.[11]

Смотрите также

Рекомендации

  1. ^ .xpm MIME типа не зарегистрированный в IANA
  2. ^ а б Ле Хорс, Арно (1996-02-01). Руководство по XPM: формат X PixMap (PDF). Groupe Bull. стр. 7–8. Получено 2014-01-01.
  3. ^ Даниэль Дардаиллер (1996-07-15). "История XPM". Колас Нахабу и Арно Ле Хорс. Архивировано из оригинал на 1997-06-07. Получено 2014-01-01.
  4. ^ "FAQ по XPM". Фонд X.Org. 1996. Получено 2016-03-12.
  5. ^ "Сводка по формату файла XPM". Энциклопедия форматов графических файлов, 2-е издание. ISBN  1-56592-161-5. Получено 2014-01-01.
  6. ^ Нир Софер. "Расширение .xpm". Получено 2014-01-12.
  7. ^ "Тип файла: X Windows Pixmap". Ассоциация файлов Windows. Microsoft. 2013. Получено 2014-01-12.
  8. ^ Граватар неофициальный, нет XPM2
  9. ^ Стив Кинзлер (2005). "Архив Пикона". Получено 2014-01-06. пиконы представлены либо в монохромном формате XBM, либо в цветном формате XPM и GIF.
  10. ^ "Библиотека libXpm содержит несколько уязвимостей целочисленного переполнения". US-CERT. 2005-10-06. VU # 537878. Получено 2014-01-01.
  11. ^ "FFmpeg 3.3" Гильберта"". FFmpeg. 2017-04-13. Получено 2017-10-28. Декодер XPM