PGM文件格式解析

来源:互联网 发布:javascript编写工具 编辑:程序博客网 时间:2024/06/11 13:51

本文转载自:PGM文件格式

PGM文件格式

  • PGM—-Portable Graymap Format。
  • pgm格式是灰度文件格式的最低标准。

PGM文件的格式定义如下:

    一个PGM文件由一个或多个PGM图象组成。 在多副图象之间,之前或之后没有任何数据存在。 每一个PGM 图像由以下部分组成:

  • 文件头部分

    文件头包括的信息依次是:

    1. PGM文件的格式类型(是P2还是P5);

    2. 图像的宽度;

    3. 图像的高度;

    4. 图像灰度值可能的最大值;

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

        在P2或P5类型的PGM文件头的4个信息之间用分割符分开,PGM的合法分隔符包括:空格,TAB,回车符,换行符。PGM文件头的信息应该由合法分割符号分开,如下图所展。文件头的第4个信息,图像灰度值可能的最大值标明了文件数据部分可能出现的像素灰度值的最大值。

  • 数据部分

        数据部分记录图像每个像素的灰度值,按照图像从上到下,从左到右的顺序依次存储每个像素的灰度值。对于像素灰度值的表示P2格式和P5格式有所不同。

P5格式

    P5格式的文件,每个像素用可以用二进制表示。比如有一幅P5格式图像,灰度值可能的最大值为255,它的第一行第一列像素值为100,那么该图像每个像素使用一个字节表示,第一行第一列为数值为100的二进制一个字节表示。如果这副图灰度值可能的最大值是65535,那么它的第一行第一列为数值为100的二进制两个字节表示(因为表示到65535需要两个字节)。每个像素数据之间没有间隔的连续存储,图像一行信息结束后从下一行第一列继续,两行图像数据之间也没有间隔的连续存储,直到将图像的所有信息表示完。因为是以二进制表示,所以数据部分在记事本中打开后看到的将会是乱码。

P2格式

    P2格式的文件,每个像素使用字符串来表示,比如一副P2格式图像,灰度值可能的最大值为255,它的第一行第一列像素值为100,那么该图像图像每个像素使用3个ASCII字符表示,第一行第一列数据为ASII表示的”100”。不同于P5格式,每个像素数据之间需要用一个空格符分开存储,在图像的每一行数据结束时需要换行。还有一点需要注意,P2格式文件数据部分当数据超过70个字节的时候,会自动换行。也就是说图像的每一行数据末尾,或者存储时超过70个字节时,需要进行换行。

PGM文件示例:

P5
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

0 0
原创粉丝点击