Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239971
  • 博文数量: 33
  • 博客积分: 2511
  • 博客等级: 少校
  • 技术积分: 391
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-06 09:24
文章分类
文章存档

2011年(3)

2010年(9)

2009年(3)

2008年(18)

我的朋友

分类: LINUX

2008-07-23 11:25:42

PPM->Portable PixMap
PGM->Portable GreyMap
PBM->Portable BitMap

PBM支持单色图(1个像素位)
PGM支持灰度图形,能够读PBM图形和PGM图形,输出PGM图形
PPM支持真彩色图形,可以读上面所有格式,输出PPM图形

PPM图形文件格式:
包括两个部分,头部分和图象数据部分。头部分由三部分组成,这三部分由回车或换行分割,但PPM的标准中是要求空格。第一行通常是P3或P6,说明是PPM格式;第二行是图象的宽度和高度,用ASCII来表示;最后一部分是描述像素的最大颜色组成,这里允许描述超过一个字节(0-255)的颜色值。另外可以在上面个部分的后面用#来追加注释,注释行是从#到该行末。
下面是PPM头的例子:

例子1:
P6 1024 778 255

例子2:
P6
1024 778
255

例子3:
P6#PPM文件格式
1024 778#宽度和高度
# 注释
255

PPM图象数据的格式依赖于PPM自身的表示,如果是P3格式,数据将以ASCII文本来表示,每个像素
的值从0到前面的最大值,每行不应该长于70个字符,如下:

例子4:
P3
# example from the man page
4 4
15
 0  0  0    0  0  0    0  0  0   15  0 15
 0  0  0    0 15  7    0  0  0    0  0  0
 0  0  0    0  0  0    0 15  7    0  0  0
15  0 15    0  0  0    0  0  0    0  0  0

如果是P6格式,图象数据以字节格式存储,每个色彩成分(r,g,b)一个字节。仅仅在头部的最后一
个字段的前面才能有注释,在头部的最后一个字段后面通常是一个回车或换行。P6图象文件比P3文件
小,读起来更快。注意,P6文件仅仅用作但字节彩色。

但并没有按照格式规约的要求来,通常的习惯,图象从上到下,从左到右被存储。每个像素以一个字
节来存储,0表示黑色,255表示白色。色彩成分按照通常的红-绿-蓝顺序爱存储。

PGM
该格式文件存储灰度图形,也就是这里每个像素使用一个值来表示而不是3个(R,G,B)。同PPM唯
一不同的是头部用P2和P5,分别表示用ASCII和字节码来表示数据。
例如:
P2
24 7
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

PBM
使用ASCII的0或1方式来表示数据,0表示白色,1表示黑色。与PPM、PGM不同的头部是少了第三
行,因为第三行的最大色彩值在这个模式下已经没有意义了;如下:
P1
# PBM example
24 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

BTW:
http://www.cppblog.com/windcsn/archive/2005/11/11/PPM.html
阅读(2111) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~