O que é o formato de ficheiro XPM?
Um arquivo .xpm armazena uma imagem raster no formato X PixMap - um formato de texto simples e cores indexadas nativo do X Window System. Ao contrário da maioria dos formatos de imagem, um arquivo XPM também é um código-fonte C válido: ele declara uma matriz de strings estática que programas C e C++ podem incluir via #include diretamente, sem uma etapa separada de carregamento de imagem.
O XPM3, a versão atual e única amplamente utilizada, começa com o comentário ASCII /* XPM */ no deslocamento de byte zero, seguido por uma definição de array C. A primeira string no array codifica as dimensões da imagem, a contagem de cores e quantos caracteres ASCII representam cada pixel (1-4). As strings subsequentes definem uma tabela de cores, mapeando esses códigos de caracteres para nomes de cores X11 (como cornflowerblue) ou valores hexadecimais RGB (#RRGGBB). A transparência é expressa mapeando um código de pixel para o nome especial None - um mecanismo que precede a transparência alfa do PNG em vários anos.
Como o formato é ASCII puro, os arquivos .xpm podem ser controlados por versão, comparados via diff e gerados programaticamente sem ferramentas binárias. O tamanho do arquivo cresce linearmente com a contagem de pixels, tornando o formato impraticável para fotografias, mas bem adequado para pequenos ícones e bitmaps de interface de usuário.
O XPM continua sendo o formato de ícone nativo para muitos toolkits X11, como Motif e o antigo GTK. Desktops Linux modernos preferem SVG ou PNG para ícones, mas aplicativos X11 ainda costumam fornecer fallbacks em XPM. GIMP, ImageMagick, XnView e IrfanView suportam o formato em sistemas modernos.
Segurança e proteção
RISCO: LOWO XPM é um formato ASCII de texto simples; não pode conter código executável ou macros. Arquivos XPM malformados poderiam, teoricamente, acionar bugs em bibliotecas de análise (existem CVEs históricos na libXpm em sistemas X11), mas versões modernas corrigidas não são vulneráveis. O risco para usuários comuns é insignificante.
Detalhes do formato
em resumoProgramas que abrem arquivos XPM
Detalhes técnicos
especificação profunda| Codificação de arquivo | Texto ASCII simples (seguro para 7 bits; também código-fonte C válido) |
| Assinatura do arquivo | /* XPM */ no deslocamento de byte 0 (XPM3); arquivos XPM2 começam com ! XPM2 |
| Modelo de cor | Paleta indexada; 1-4 caracteres ASCII imprimíveis por pixel mapeiam para entradas de cor |
| Especificação de cor | Nomes de cores X11 (ex: cornflowerblue) ou valores hexadecimais #RRGGBB por entrada de paleta |
| Transparência | O nome de cor X11 «None» mapeia um código de pixel para transparência total (sem byte de canal alfa separado) |
| Compressão | Nenhuma - cada pixel armazenado como 1-4 caracteres ASCII literais |
| Versões do formato | XPM1 (1989, macros C monocromáticas), XPM2 (1990, dados autônomos), XPM3 (1991, sintaxe C - atual) |
| Paleta máxima | Até 65.536 cores indexadas simultâneas |
| Tipo MIME | image/x-xpixmap |
| Dimensões | Sem limite rígido; o tamanho do arquivo cresce linearmente com a contagem de pixels (cada pixel = chars_per_pixel bytes ASCII) |
| Integração C | O conteúdo do arquivo pode ser incluído via #include diretamente no código C/C++ e compilado sem um carregador |
| Lançado | 1989 (XPM1, Daniel Dardailler, Bull Research Center) |
| Versão mais recente | XPM3 (1991), documented in XPM Manual v3.4i (September 1996, Arnaud Le Hors) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.xfree86.org |
Conversões de XPM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos XPM.