PPM圖像格式是由Jef Poskanzer 大叔,在我出生那一年,也就是1991年所創(chuàng)造的,碰巧的是PPM也是天蝎座。
PPM(Portable Pixmap Format)還有兩位兄長,大哥名叫「PBM」,二哥人稱「PGM」,他們?nèi)值芨饔兴L,下面為你們一一介紹:
PBM 是位圖(bitmap),僅有黑與白,沒有灰
PGM 是灰度圖(grayscale)
PPM 是通過RGB三種顏色顯現(xiàn)的圖像(pixmaps)
每個圖像文件的開頭都通過2個字節(jié)「magic number」來表明文件格式的類型(PBM, PGM, PPM),以及編碼方式(ASCII 或 Binary),magic number分別為P1、P2、P3、P4、P5、P。
| Magic Number | Type | Encoding |
|---|---|---|
| P1 | Bitmap | ASCII |
| P2 | Graymap | ASCII |
| P3 | Pixmap | ASCII |
| P4 | Bitmap | Binary |
| P5 | Graymap | Binary |
| P6 | Pixmap | Binary |
編碼方式:
ASCII格式適合人類閱讀理解,可以用文本編輯器打開,讀取對應(yīng)圖像的數(shù)據(jù)(比如PPM格式的RGB值)。 Binary格式適合機(jī)器閱讀,按照二進(jìn)制形式,順序存儲圖像信息,不用空格分隔,所以圖像處理起來更有效率,占用空間容量更少(由于缺少空格)。
下面著重講解PPM格式:
PPM圖像格式分為兩部分,分別為頭部分和圖像數(shù)據(jù)部分。
頭部分:由3部分組成,通過換行或空格進(jìn)行分割,一般PPM的標(biāo)準(zhǔn)是空格。
第1部分:P3或P6,指明PPM的編碼格式,
第2部分:圖像的寬度和高度,通過ASCII表示,
第3部分:最大像素值,0-255字節(jié)表示。
圖像數(shù)據(jù)部分:
ASCII格式:按RGB的順序排列,RGB中間用空格隔開,圖片每一行用回車隔開。
Binary格式:PPM用24bits代表每一個像素,紅綠藍(lán)分別占用8bits。
栗子:
P3 3 2 255
255 0 0 0 255 0 0 0 255 255 255 0 255 255 255 0 0 0
-P3: PPM編碼格式為ASCII
-3: 3列像素
-2: 2行像素
-255: 最大像素值