圖片存儲格式 PNM 以及 PBM/PGM/PPM


圖片的存儲格式之一是PNM——實際上是PBM、PGM、PPM三種格式的統稱。這三種格式的語法很接近,分別對就黑白圖片、灰度圖片和彩色圖片。

PNM是"Portable Any Map"的縮寫。

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

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
  •  

    文件頭的這四部分信息都是以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

    彩色圖片


  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM