可移植像素圖格式(PPM),可移植灰度圖格式(PGM)和可移植點陣圖格式(PBM)是便於跨平台的圖像格式。有時候也被統稱為PNM格式[5]。
歷史
PBM格式由Jef Poskanzer在20世紀80年代發明,為了便於通過電子郵件,用ASCII碼表示單色點陣圖,能夠承受一般的文字格式的變動。
第一個處理PBM格式的工具庫是Pbmplus。它由這個格式的發明人Jef Poskanzer開發,在1988年發佈。主要包含Jef編寫的將PBM轉化為已存在的其他圖像格式的工具。在1988年末,Jef開發出PGM、PPM格式以及相關工具,並加入Pbmplus中。Pbmplus的最終發佈日期是1991年12月10日。
在1993年,Netpbm庫開始開發,用來替代不再維護的Pbmplus。它是Pbmplus的簡單的重新包裝,附加全世界開發者提供的額外功能和修訂,可能是目前用的最普遍的處理PBM、PGM和PPM格式的工具庫。[6]
檔案格式描述
這三種格式在顏色的表示上有差異。PBM是單色,PGM是灰度圖,PPM使用RGB顏色。
每個檔案的開頭兩個位元組(ASCII碼)作為檔案描述子,指出具體格式和編碼形式。具體見下表。
檔案描述子 | 類型 | 編碼 |
---|---|---|
P1
|
點陣圖 | ASCII |
P2
|
灰度圖 | ASCII |
P3
|
像素圖 | ASCII |
P4
|
點陣圖 | 二進制 |
P5
|
灰度圖 | 二進制 |
P6
|
像素圖 | 二進制 |
基於ASCII的格式使人可讀,並且能夠很容易的移植到其他格式。但是二進制格式更有效,不僅因為他節約空間,而且因為他更容易被解析(因為很少有空格)
當使用二進制格式的時候,PBM每像素使用一個位元空間,PGM每個像素使用8個位元空間,PPM每像素使用24位元空間(8位元紅色、8位元綠色、8位元藍色)。
下面是一個簡單的例子
- P1
- # This is an example bitmap of the letter "J"
- 6 10
- 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 0
- 0 0 0 0 1 0
- 1 0 0 0 1 0
- 0 1 1 1 0 0
- 0 0 0 0 0 0
- 0 0 0 0 0 0
P1表示檔案格式。#符號表示一個註釋。接下來兩個數是寬度和高度。接下來的矩陣是每個像素的值。(在這裏單色格式,只有0和1)
- P2
- 6 6
- 255
- 0 0 0 150 0 0
- 0 0 0 150 0 0
- 0 0 0 150 0 0
- 0 150 0 150 0 0
- 0 150 150 150 0 0
- 0 0 0 0 0 0
- P3
- 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
16位元擴充
- P2
- 6 6
- 65535
- 0 0 0 30000 0 0
- 0 0 0 30000 0 0
- 0 0 0 30000 0 0
- 0 0 0 30000 0 0
- 0 30000 30000 30000 0 0
- 0 0 0 0 0 0
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.