2008-03-03

[转]XPM文件格式分析


该文翻译自XPM: Summary from the Encyclopedia of Graphics File
Formats



XPM文件的基本结构是

/* XPM */

static char * <pixmap_name>[] = {

<Values>

<Colors>

<Pixels>

<Extensions>

};



其中Values部分相当于图像文件的文件头,它由

<width> <height> <numcolors>
<cpp> [ <x_hotspot>
<y_hotspot> ] [ XPMEXT ]

构成,其中x_hotspot,y_hotspot,XPMEXT是可选的。

width:图像的宽度,像素为单位

height:图像的高度,像素为单位

numcolors:颜色数

cpp:每个像素占用的字符长度

x_hotspot:热点的X轴位置

y_hotspot:热点的Y轴位置



Colors部分定义的是调色板的信息,它由

<character> { <key> <color> }
{ <key> <color> }构成

character是颜色索引值,key是关键字,color是颜色值

key可以有以下几种选项:

m:单色

s:符号名称

g4:4级灰度

g:灰度

c:彩色

color也可以由以下几种构成:

颜色名称

#开头的十六进制数表示RGB空间颜色值

%开头的十六禁止数表示HSV空间颜色值

符号名称

字符串NONE,表示该颜色是透明色



Pixels部分表示实际的像素,全部采用调色板中定义的索引,由等同于图像像素高度的行构成。



Extension部分可以自己定义一些图像附件信息,如作者,标题等,形如

XPMEXT <extension_name>
<extension_data_string>单行的扩展

XPMEXT <extension_name>

<extension_data_string1>

<extension_data_string2>

多行的扩展

Extension部分必须以XPMENDEXT标志结束。

例子如:

/* XPM */

static char * plaid[] =

{

/* plaid pixmap */

/* width height ncolors chars_per_pixel */

"22 22 4 2 0 0 XPMEXT",

/* colors */

" c red m white s light_color",

"Y c green m black s ines_in_mix",

"+ c yellow m white s lines_in_dark ",

"x m black s dark_color ",

/* pixels */

"x x x x x x x x x x x x + x x x x x ",

" x x x x x x x x x x x x x x x x ",

"x x x x x x x x x x x x + x x x x x ",

" x x x x x x x x x x x x x x x x ",

"x x x x x x x x x x x x + x x x x x ",

"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",

"x x x x x x x x x x x x + x x x x x ",

" x x x x x x x x x x x x x x x x ",

"x x x x x x x x x x x x + x x x x x ",

" x x x x x x x x x x x x x x x x ",

"x x x x x x x x x x x x + x x x x x ",

" x x x x Y x x x ",

" x x x Y x x ",

" x x x x Y x x x ",

" x x x Y x x ",

" x x x x Y x x x ",

"x x x x x x x x x x x x x x x x x x x x x x ",

" x x x x Y x x x ",

" x x x Y x x ",

" x x x x Y x x x ",

" x x x Y x x ",

" x x x x Y x x x ",

"XPMEXT ext1 data1",

"XPMEXT ext2",

"data2_1",

"data2_2",

"XPMEXT ext3",

"data3",

"XPMEXT",

"data4",

"XPMENDEXT"

};


原文地址:http://www.linuxsir.org/bbs/showthread.php?t=275780

没有评论:

留言须知:
0. 你有權保持沉默,但你所說的將作為此BLOG有人訪問的證據。
1. 支持的HTML標籤:<a href="" title=""> <b> <em> <i> <strong>。
2. 留言留名,不然易被无视。(在“评论”中选择“名称/网址”,网址可以不填)。
3. 原則上我不删除留言,除非那則留言侮辱到你。