首页 > 代码库 > 图片存储格式 PNM 以及 PBM/PGM/PPM

图片存储格式 PNM 以及 PBM/PGM/PPM

图片的存储格式之一是PNM——实际上是PBM、PGM、PPM三种格式的统称。这三种格式的语法很接近,分别对就黑白图片、灰度图片和彩色图片。

PNM是"Portable Any Map"的缩写。

PNM文件可以用程序xview或kview打开。

PPM格式的图片

ppm格式可以是二进制的,也可以是纯文本的。两者的区别主要是像素数据用二进制表示还是用纯文本表示。

纯文本格式的PPM非常适合于简单的图片输出——因为不需要复杂的图片处理library。

下面是一个纯文本PPM格式的图片

  • 文件的开头是magic number "P3"
  • 接下来是图片的尺寸
  • 然后是每个像素中颜色值的最大值,4bit=15, 8bit=255, 16bit=65535
  • "#"开头的行是注释
  • P3 4 4 150  0  0    0  0  0    0  0  0   15  0 150  0  0    0 15  7    0  0  0    0  0  00  0  0    0  0  0    0 15  7    0  0  015  0 15    0  0  0    0  0  0    0  0  0
    对于pbm和pgm都是一样的,包括了文件头和信息。

    文件头的这四部分信息都是以ASCII码形式存储的,所以可以直接在将magic number 格式的PGM文件在记事本中打开看到文件头的信息.

    在P2或P5类型的PGM文件头的4个信息之间用分割符分开,PGM的合法分隔符包括:空格,TAB,回车符,换行符.PGM文件头的信息应该由合法分割符号分开。文件头的第4个信息,图像灰度值可能的最大值标明了文件数据部分可能出现的像素灰度值的最大值.上面幅图都是指定的255,所以在数据区的像素数据取值范围在0到255.

    PNM文件的几种不同格式其实都差不多,区别主要是Magic Number的不同和像素值的含义的不同。

    PNM格式

    纯文本格式

    二进制格式

    备注

    PBM

    P1

    P4

    黑白格式: 1或0

    PGM

    P2

    P5

    灰度图片

    PPM

    P3

    P6

    彩色图片

    图片存储格式 PNM 以及 PBM/PGM/PPM