XPM(X Pixmap)是X Windows系统使用的一种图片文件格式。最初由位于法国Sophia Antipolis的Bull研究中心的Daniel Dardailler和Colas Nahaboo发明,后来Arnaud Le Hors对其进行了改进。
XPM主要用于创建图标位图文件,并支持“transparent color”功能。XPM文件格式源自更早的X BitMap(XBM),是一种符合C语言语法的纯文本文件。
它可以通过#include语句可以将XPM格式的图形数据导入C语言源文件中。
基本格式:
static char *<variable_name>[] = { <Values> <Colors> <Pixels> <Extensions> };
/* XPM */ static char *xface[] = { /* Values */ "48 4 2 1", /* Colors */ "a c #ffffff", "b c #000000", /* Pixels */ "abaabaababaaabaabababaabaabaababaabaaababaabaaab", "abaabaababaaabaabababaabaabaababaabaaababaabaaab", "abaabaababaaabaabababaabaabaababaabaaababaabaaab", "abaabaababaaabaabababaabaabaababaabaaababaabaaab", };
在wxWidgets使用xpm文件:
可以使用XnConvert将图片转换成xpm文件。
在wxWidgets代码中,先include xpm文件,再用SetIcon(wxIcon(qiang_xpm))来使用;这里的qiang_xpm就是xpm文件中所定义的静态变量。
#include "qiang.xpm" MyFrame::MyFrame(const wxString &title) : wxFrame(NULL, wxID_ANY, title) { SetIcon(wxIcon(qiang_xpm)); wxMenu *fileMenu = new wxMenu; wxMenu *helpMenu = new wxMenu; helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"), wxT("Show about dialog")); fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"), wxT("Quit this program")); wxMenuBar *menuBar = new wxMenuBar(); menuBar->Append(fileMenu, wxT("&Fie")); menuBar->Append(helpMenu, wxT("&Help")); SetMenuBar(menuBar); CreateStatusBar(2); SetStatusText(wxT("Welcome to wxWidgets!")); }
结果: