Jump to content

X ПиксМап

X ПиксМап
Некоторые текстовые редакторы , например gvim , могут отображать изображения xpm в графическом виде.
Расширение имени файла
.xpm
Тип интернет-СМИ
изображение/x-xpixmap [1]
Разработано Бычье исследование
Тип формата Форматы файлов изображений
Расширено с ХБМ
Открытый формат ? да

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

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

Первый (1989 г.) формат XPM относительно похож на формат XBM. [а] По сравнению с XBM, он использует дополнительные макроопределения и переменные для индексированных цветов и заменяет биты символами для описания изображения. Ниже приведено черно-белое изображение в формате XPM 1989 года.

#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[] = {
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
// and so on for 48 rows with 48 pixels

XPM2 (1990) упрощает формат, удаляя весь C. код [б] [с] Структура упрощена до

! XPM2
<Values>
<Colors>
<Pixels>
<Optional Extensions>
  • Раздел значений описывает общий размер изображения, аналогичный #define заявления.
  • Раздел цвета определяет значения и новую концепцию «типа» цвета. Типами могут быть c для «цвета», m для «монохромного» вывода, g для «оттенков серого» и s для «символического», что объясняет, что должен делать определенный цвет.
  • Пиксели и дополнительные расширения остаются в исходном формате.

Приведенный выше файл с шириной 48, высотой 4, 2 цветами и 1 символом на пиксель будет выглядеть так:

! XPM2
48 4 2 1
a c #FFFFFF
b c #000000
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab
abaabaababaaabaabababaabaabaababaabaaababaabaaab

Помимо шестнадцатеричных кодов, цветами могут быть любые названия цветов X11 . Кроме того, None указывает на прозрачность. [4] [5]

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

Многоцветное кодирование

[ редактировать ]

Известно, что один инструмент использует только от a до p для 16 цветов, переключаясь на aa до dp для 64 цветов, но по-прежнему считывает односимвольные кодировки для 64 цветов; сравните Base64 .

При большем количестве цветов в кодах используется больше символов, например, от аа до 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 (1991). Он заново представляет оболочку C, но вместо явного отображения структуры файла сохраняемые строки по существу идентичны XPM2.

/* XPM */
static char * XFACE[] = {
"48 4 2 1",
"a c #ffffff",
"b c #000000",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
"abaabaababaaabaabababaabaabaababaabaaababaabaaab"
};

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

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

[ редактировать ]
Файл Blarg открыт в окне программы

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

ХБМ-версия:

#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 , Amaya , CorelDRAW , GIMP , ImageMagick , IrfanView (плагин форматов), PaintShop Pro , PMView , Photoshop (плагины) и XnView , среди прочих, поддерживают XPM. [6] [7] Gravatar и picons также поддерживают XPM. [8] [9]

Уязвимость X11 libXpm . была исправлена ​​в 2005 году [10] и еще три в 2023 году. [11]

FFmpeg версии 3.3 или новее может декодировать XPM. [12]

См. также

[ редактировать ]
  • Netpbm — набор инструментов для манипулирования изображениями
  • CLUT – в компьютерной графике ограниченный набор доступных цветов.

Примечания

[ редактировать ]
  1. ^ Для описания этого формата вместо руководства (не найденного в Интернете) используйте исходный код конвертера xpm-contrib (ранее входившего в состав libXpm) (xpm2ppm, xpm1to3, xpm1to2c).
  2. ^ Также допустимо использовать синтаксис языка программирования для строковых массивов, но сертифицирован только синтаксис C. Синтаксис «XPM2 C» в конечном итоге стал единственным форматом в XPM версии 3.
  3. ^ Ссылки по этому синтаксису см. в https://gitlab.freedesktop.org/xorg/lib/libxpm/-/blob/master/NEWS.old и в разделе «история» руководства по libXpm 3.4.
  1. ^ .xpm Тип MIME не зарегистрирован в IANA
  2. ^ Jump up to: а б Ле Хорс, Арно (1 февраля 1996 г.). Руководство по XPM: формат X PixMap (PDF) . Группа Булл . стр. 7–8 . Проверено 1 января 2014 г.
  3. ^ Дэниел Дардайлер (15 июля 1996 г.). «История XPM» . Колас Нахабу и Арно Ле Хорс. Архивировано из оригинала 7 июня 1997 г. Проверено 1 января 2014 г.
  4. ^ «Часто задаваемые вопросы по XPM» . Фонд X.Org . 1996 год . Проверено 12 марта 2016 г.
  5. ^ Мюррей, Джеймс Д.; Ванрипер, Уильям (1996). Краткое описание формата файла XPM . О'Рейли и партнеры. ISBN  1-56592-161-5 . Проверено 1 января 2014 г. {{cite book}}: |work= игнорируется ( помогите )
  6. ^ Нир Софер «Расширение .xpm» . Проверено 12 января 2014 г.
  7. ^ «Тип файла: X Windows Pixmap» . Ассоциация файлов Windows . Майкрософт . 2013 . Проверено 12 января 2014 г.
  8. ^ Граватар неофициальный, нет XPM2
  9. ^ Стив Кинзлер (2005). «Архив Пиконов» . Проверено 6 января 2014 г. значки представлены либо в монохромном формате XBM, либо в цветном формате XPM и GIF.
  10. ^ «Библиотека libXpm содержит несколько уязвимостей целочисленного переполнения» . США-CERT . 06.10.2005. ВУ#537878 . Проверено 1 января 2014 г.
  11. ^ «Рекомендации по безопасности X.Org: проблемы с обработкой файлов XPM в libXpm до версии 3.5.15» . 17 января 2023 г.
  12. ^ «FFmpeg 3.3 «Гильберт» » . FFmpeg . 13 апреля 2017 г. Проверено 28 октября 2017 г. XPM-декодер

См. также

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6ba690c956268ea9f860197c0d4c083f__1716642960
URL1:https://arc.ask3.ru/arc/aa/6b/3f/6ba690c956268ea9f860197c0d4c083f.html
Заголовок, (Title) документа по адресу, URL1:
X PixMap - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)