X PixMap ( XPM ) - это формат файла изображения, используемый системой X Window , созданный в 1989 году Даниэлем Дардайлером и Коласом Нахабу, работающими в Bull Research Center в Софии Антиполис , Франция, а затем улучшенный Арно Ле Хорсом. [2] [3]
Расширение имени файла | .xpm |
---|---|
Тип интернет-СМИ | image / x-xpixmap [1] |
Разработано | БЫК Исследования |
Тип формата | Форматы файлов изображений |
Расширен с | XBM |
Открытый формат ? | да |
Он предназначен в первую очередь для создания растровых изображений значков и поддерживает прозрачные пиксели . Полученный из более раннего синтаксиса XBM , это простой текстовый файл в формате XPM2 или синтаксиса языка программирования C , который может быть включен в файл программы C. [2]
XPM
Формат XPM - это массив строк, состоящий из шести различных разделов, как показано ниже:
статический символ * < имя_переменной > [] = { < Значения > < Цвета > < Пиксели > < Расширения > };
Это черно-белое изображение в первом (1989 г.) формате XPM.
#define XFACE_format 1 #define XFACE_width 48 #define XFACE_height 48 #define XFACE_ncolors 2 #define XFACE_chars_per_pixel 1 static char * XFACE_colors [] = { "a" , "#ffffff" , "b" , "# 000000" }; static char * XFACE_pixels [] = { "abaabaababaaabaabababaabaabaababaaababaabaaab" , // и так далее для 48 строк с 48 пикселями
Раздел значений содержит ширину, высоту, количество цветов и количество символов на пиксель.
XPM2
XPM2 упрощает формат, удаляя весь код C. Пример:
! XPM248 4 2 1ac #FFFFFFbc # 000000abaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaababaabaababaaabaabababaabaabaababaabaaababaabaaab
Это файл XPM2 с шириной 48, высотой 4, 2 цветами и 1 символом на пиксель. Известно, что один инструмент использует только от 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 9 =1 000 000 000 цветов (сравните с GIF , который поддерживает только 256).
Для XPM2 ясно, сколько строк принадлежит изображению - две строки заголовка, вторая строка заголовка объявляет количество цветовых кодов (2 строки в примере выше) и строки (высота 4 в примере выше), например 2 + 2. + 4 = 8 строк.
XPM3
Другие стили XPM1 и XPM3 предназначены для использования в исходном коде C, например:
/ * XPM * / static char * XFACE [] = { / * <Значения> * / / * <ширина / столбцы> <высота / строки> <цвета> <символов на пиксель> * / "48 4 2 1" , / * <Цвета> * / "ас #ffffff" , "BC # 000000" , / * <Пиксели> * / "abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" , "abaabaababaaabaabababaabaabaababaabaaababaabaaab" };
Последний формат - XPM3, общий формат, используемый для X Window System примерно с 1991 года. C означает «цвет», можно добавить m для «монохромного» вывода, g для «оттенков серого» и s для «символического», объясняя, что должен делать определенный цвет.
В дополнение к названиям цветов X11 название None
указывает на прозрачность. [4] [5]
«Символьная» функция позволяет настраивать цвета в зависимости от контекста, в котором они используются. Код вроде s border c blue
бы можно корректировать на синем фоне.
Если ширина, высота, цвета и символы на пиксель строки содержат шесть вместо четырех чисел, дополнительные значения указывают координаты «горячей точки», 0 0 - это верхний левый угол поля, содержащего значок, и значение по умолчанию. «Точка доступа» используется для указателей мыши и подобных приложений.
Сравнение с другими форматами
Следующий код отображает тот же файл 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 };
Версия XPM2:
! XPM216 7 2 1* с # 000000. c #ffffff** .. * ...........*. *. * ...........** .. * .. **. ** .. ***. *. *. *. *. * .. *. *** .. * .. **. * ... **............... *............. **.
Версия XPM3:
/ * XPM * / static 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 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 , Photoshop (плагины) и XnView среди других поддерживают XPM. [6] [7] Gravatar и picons также поддерживают XPM. [8] [9]
Х11 LibXpm уязвимость была зафиксирована в 2005 году [10] FFmpeg версии 3.3 или более поздней версии может декодировать XPM. [11]
Смотрите также
- X Window System (X11) и названия цветов X11
- PBM (моно), PGM (оттенки серого), PPM (цветной), PNM (любой)
Рекомендации
- ^ Тип MIME .xpmне зарегистрирован в IANA
- ^ a b Ле Хорс, Арно (1 февраля 1996 г.). Руководство по XPM: формат X PixMap (PDF) . Groupe Bull . С. 7–8 . Проверено 1 января 2014 .
- ^ Даниэль Дардаиллер (1996-07-15). «История XPM» . Колас Нахабу и Арно Ле Хорс. Архивировано из оригинала на 1997-06-07 . Проверено 1 января 2014 .
- ^ «FAQ по XPM» . Фонд X.Org . 1996 . Проверено 12 марта 2016 .
- ^ «Сводка по формату файла XPM» . Энциклопедия форматов графических файлов, 2-е издание . ISBN 1-56592-161-5. Проверено 1 января 2014 .
- ^ Нир Софер. «Расширение .xpm» . Проверено 12 января 2014 .
- ^ «Тип файла: X Windows Pixmap» . Ассоциация файлов Windows . Microsoft . 2013 . Проверено 12 января 2014 .
- ^ Gravatar неофициальный, без XPM2
- ^ Стив Кинзлер (2005). "Архив Пикона" . Проверено 6 января 2014 .
пиконы представлены либо в монохромном формате XBM, либо в цветном формате XPM и GIF.
- ^ «Библиотека libXpm содержит несколько уязвимостей целочисленного переполнения» . US-CERT . 2005-10-06. ВУ № 537878 . Проверено 1 января 2014 .
- ^ "FFmpeg 3.3" Гильберт " " . FFmpeg . 2017-04-13 . Проверено 28 октября 2017 .
Декодер XPM