代码改变世界

PPM图像格式(Portable Pixelmap)

2010-12-01 16:08  bingcaihuang  阅读(671)  评论(0)    收藏  举报

今天得知Minolta 3D scans(Konica的一款三维扫描仪)的数据是两部分,一是反映Shape的后缀为.abs文件,另一个是反映Texture的后缀为.ppm的文件。下面就是ppm文件格式的简介。


PPM灰度文件:
文件头由3行文本组成,可由fgets读出
1)第一行为“P2",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值255
接下来是图像数据块。按行顺序存储。每个象素占4个字节,灰度通道为4字节ASCII码表示的整数,
高字节在前。左上角为坐标原点。
16位PPM文件:(至少适用于读取由DCRAW生成的PPM文件)
文件头由3行文本组成,可由fgets读出
1)第一行为“P6",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值
接下来是图像数据块。按行顺序存储。每个象素占6个字节,依次为红绿蓝通道,每个通道为2字节整
数,高字节在前。
PPM彩色文件:
文件头由3行文本组成,可由fgets读出
1)第一行为“P3",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值255

接下来是图像数据块。按行顺序存储。每个象素占12个字节,依次为红绿蓝通道,每个通道为4字节
ASCII码表示的整数,高字节在前。左上角为坐标原点。

另转其他:

ppm文件的开始为三行ASCII码文本
第一行是:   P6
第二行是图像的大小,先是列象素数,后是行象素数,中间有一空格,
例如320X240的图像,次行为: 320 240
第三行是一个介于1和65525的整数,当然也是文本的,用来表示
每一个象素的一个分量(如红,绿,蓝)用几个比特表示, 1-255
表示一个分量用地比特表示.
每一行的结尾一换行或回车或两者都用表示.
三行文本之后就是图像的数据流,从左到右,从上到下.
如一个320X240的RGB图象,每分量用8比特表示,
文件如下:
P6
320 240
255