您的位置:首页 > 产品设计 > 产品经理

PPM / PGM / PBM 图像文件格式

2015-10-15 17:11 531 查看

PPM / PGM / PBM 图像文件格式

声明:引用请注明出处http://blog.csdn.net/lg1259156776/

说明:在进行图像压缩后传输,然后解压缩显示的过程中,通常会用到PPM / PGM / PBM 图像文件格式来对解压后的图像像素值进行存储,因为没有进行压缩,所以不丢失信息,但同时也文件比较大。本文就是对这种图像文件格式进行介绍。

总论

PPM(Portable PixMap)是portable像素图片,是由netpbm项目定义的一系列的portable图片格式中的一个。这些图片格式都相对比较容易处理,跟平台无关,所以称之为portable,就是比较直接的图片格式。比如PPM,其实就是把每一个点的RGB分别保存起来。所以,PPM格式的文件是没有压缩的,相对比较大,但是由于图片格式简单,一般作为图片处理的中间文件(不会丢失文件信息),或者作为简单的图片格式保存。

格式分析

netpbm的几种图片格式是通过其表示的颜色类型来区别的,PBM是单色图,只有黑色和白色,PGM是灰度图片PPM是代表完整的RGB颜色的图片,有时也统称为PNM格式。

(1) 文件头

文件头由三个部分组成:这几个部分之间用回车或换行分隔(但是PPM标准中要求是空格)。

第一部分是文件magic number

每一个netpbm图片由两个字节的magic number (ASCII)组成,来标识文件的类型(PBM/PGM/PPM)以及文件的编码(ASCII或binary)。

P1  单色图  ASSII  PBM

P2  灰度图  ASSII  PGM

P3  像素图  ASSII  PPM

P4  单色图  二进制  PBM

P5  灰度图  二进制  PGM

P6  像素图  二进制  PPM

第二部分是图像宽度和高度(空格隔开),用ASCII表示。

第三部分是描述像素的最大颜色组成,允许描述超过一个字节(0-255)的颜色值。

另外,在上面的三个部分里面,都可以使用”#”插入注释,注释是#到行尾(回车或换行)部分。

(2) 图像数据部分

对于ASCII格式,就是按照RGB的顺序排列,以ASCII存储,并且,RGB中间用空格隔开,图片每一行用回车隔开。

对于binary格式,就是每一个像素点的RGB值分别顺序存储并且按二进制写入文件,没有任何分隔。

例子

PPM

例子1:

P6 1024 778 255

例子2:

P6

1024 778

255

例子3:

P6#PPM文件格式

1024 778#宽度和高度

255

通常的习惯,图象从上到下,从左到右被存储。色彩成分按照通常的红-绿-蓝顺序存储。

PGM

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

例如:

P2

24 7

15

PBM

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

如下:

P1# PBM example

24 7

2015-10-15 艺少
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: