Pure_C_Read and Write PPM、PGM、PBM Three Image File Formats
PPM、PGM、PBM三種都是影象檔案格式
PPM、PGM、PBM三種都是影象檔案格式:
三種檔案格式結構相同,都非常簡單,沒有壓縮。由表頭和影象資料兩部分組成。表頭資料各項之間用空格(空格鍵、製表鍵、Enter鍵或換行鍵)隔開,表頭由四部分組成:
① 檔案描述子:指明檔案的型別以及影象資料的儲存方式;
② 影象寬度;
③ 影象高度;
④ 最大灰度值或顏色值.
其中影象寬度、高度和最大值這三項是ASCII碼十進位制數. 注意,PBM格式的表頭中最大值隱含為1.
表頭的下面是影象資料區,描述了”寬度×高度”個畫素.影象資料有兩種儲存格式:ASCII和RAWBITS,在檔案描述子中指定
各影象資料之間可用空格隔開.規定每行不超過70個字元.影象資料內容是:
① PBM檔案的影象資料是0和1二值資料,1代表黑色,0代表白色.
② PGM檔案包括的是灰度級資料,0值代表黑色,最大值代表白色.
③ PPM檔案包括的顏色資料,0值代表無此顏色,最大值代表顏色為最大.
PPM檔案格式
包括兩個部分,頭部分和圖象資料部分。第一行是P3或P6,說明是PPM 格式;第二行是圖象的寬度和高度,用ASCII來表示;最後一部分是描述畫素的最大顏色組成,這裡允許描述超過一個位元組(0-255)的顏色值。另外可以 在上面三個部分的後面用#來追加註釋,註釋行是從#到該行末。
下面是PPM頭的例子:
例子1:P6 1024 778 255
例子2:P61024 778255
例子3:P6#PPM檔案格式1024 778#寬度和高度# 註釋255
PPM圖象資料的格式依賴於PPM自身的表示,如果是P3格式,資料將以ASCII文字來表示,每個畫素的值從0到前面的最大值,每行不應該長於70個字 符,如例子4:P3# example from the man page4 4150 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
如果是P6格式,圖象資料以位元組格式儲存,每個色彩成分(r,g,b)一個位元組。僅僅在頭部的最後一個欄位的前面才能有註釋,在頭部的最後一個欄位後面通常是一個回車或換行。P6圖象檔案比P3檔案小,讀起來更快。注意,P6檔案僅僅用作單位元組彩色。
通常的習慣,圖象從上到下,從左到右被儲存。每個畫素以一個位元組來儲存,0表示黑色,255表示白色。色彩成分按照通常的紅-綠-藍順序來儲存。
PGM檔案格式
該格式檔案儲存灰度圖形,也就是這裡每個畫素使用一個值來表示而不是3個(R,G,B)。同PPM唯一不同的是頭部用P2和P5,分別表示用ASCII和 位元組碼來表示資料。例如:P224 7150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 00 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 00 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 00 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 00 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 00 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 example24 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 00 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 00 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 00 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 00 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- PPM->Portable PixMap 支援真彩色圖形,可以讀上面所有格式,輸出PPM圖形
- PGM->Portable GreyMap 支援灰度圖形,能夠讀PBM圖形和PGM圖形,輸出PGM圖形
- PBM->Portable BitMap 支援單色圖(1個畫素位)
三種檔案格式結構相同,都非常簡單,沒有壓縮。由表頭和影象資料兩部分組成。表頭資料各項之間用空格(空格鍵、製表鍵、Enter鍵或換行鍵)隔開,表頭由四部分組成:
① 檔案描述子:指明檔案的型別以及影象資料的儲存方式;
② 影象寬度;
③ 影象高度;
④ 最大灰度值或顏色值.
其中影象寬度、高度和最大值這三項是ASCII碼十進位制數. 注意,PBM格式的表頭中最大值隱含為1.
表頭的下面是影象資料區,描述了”寬度×高度”個畫素.影象資料有兩種儲存格式:ASCII和RAWBITS,在檔案描述子中指定
各影象資料之間可用空格隔開.規定每行不超過70個字元.影象資料內容是:
① PBM檔案的影象資料是0和1二值資料,1代表黑色,0代表白色.
② PGM檔案包括的是灰度級資料,0值代表黑色,最大值代表白色.
③ PPM檔案包括的顏色資料,0值代表無此顏色,最大值代表顏色為最大.
檔案描述子 | 型別 | 編碼 |
P1 | 點陣圖 | ASCII |
P2 | 灰度圖 | ASCII |
P3 | 畫素圖 | ASCII |
P4 | 點陣圖 | 二進位制 |
P5 | 灰度圖 | 二進位制 |
P6 | 畫素圖 | 二進位制 |
PPM檔案格式
包括兩個部分,頭部分和圖象資料部分。第一行是P3或P6,說明是PPM 格式;第二行是圖象的寬度和高度,用ASCII來表示;最後一部分是描述畫素的最大顏色組成,這裡允許描述超過一個位元組(0-255)的顏色值。另外可以 在上面三個部分的後面用#來追加註釋,註釋行是從#到該行末。
下面是PPM頭的例子:
例子1:P6 1024 778 255
例子2:P61024 778255
例子3:P6#PPM檔案格式1024 778#寬度和高度# 註釋255
PPM圖象資料的格式依賴於PPM自身的表示,如果是P3格式,資料將以ASCII文字來表示,每個畫素的值從0到前面的最大值,每行不應該長於70個字 符,如例子4:P3# example from the man page4 4150 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
如果是P6格式,圖象資料以位元組格式儲存,每個色彩成分(r,g,b)一個位元組。僅僅在頭部的最後一個欄位的前面才能有註釋,在頭部的最後一個欄位後面通常是一個回車或換行。P6圖象檔案比P3檔案小,讀起來更快。注意,P6檔案僅僅用作單位元組彩色。
通常的習慣,圖象從上到下,從左到右被儲存。每個畫素以一個位元組來儲存,0表示黑色,255表示白色。色彩成分按照通常的紅-綠-藍順序來儲存。
PGM檔案格式
該格式檔案儲存灰度圖形,也就是這裡每個畫素使用一個值來表示而不是3個(R,G,B)。同PPM唯一不同的是頭部用P2和P5,分別表示用ASCII和 位元組碼來表示資料。例如:P224 7150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 00 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 00 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 00 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 00 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 00 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 example24 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 00 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 00 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 00 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 00 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
相關文章
- db file parallel writeParallel
- Oracle db file parallel write 和 log file parallel write 等待事件 說明OracleParallel事件
- log file sync 和 log file parallel writeParallel
- nodejs read/write fileNodeJS
- control file parallel writeParallel
- WPF open image and print as pdf file
- data file int write和db file sequential read個人想法
- control file parallel write等待事件Parallel事件
- BMP(Bitmap Image File)解碼流程:
- Oracle - ORA-09817: Write to audit file failedOracleAI
- control file parallel write事件小記Parallel事件
- [轉載]Oracle等待事件Data file init writeOracle事件
- Oracle之 等待事件log file sync + log file parallel write (awr優化)Oracle事件Parallel優化
- log file sync(日誌檔案同步) 與 Log file parallel write 等待事件Parallel事件
- ORA-31617 unable to open dump file for write
- redo的等待log file sync和log file parallel write和redo size設定Parallel
- WHAT IS PPM Encoder ?
- ppm轉換bmp
- 【伺服器】關於錯誤:Smarty:unable to write file伺服器
- 【蓋國強】Oracle Wait Event:Data file init writeOracleAI
- ORA-09817: Write to audit file failed 的解決AI
- su - grid 提示E297: Write error in swap fileError
- 【MySQL】ERROR 1878 (HY000): Temporary file write failure.MySqlErrorAI
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- 轉eygle大師_wait event_db file init writeAI
- matlab convert to PGM P2Matlab
- system image file too large for device hardware configurationdev
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- Chapter 2. Video Formats and QualityAPTIDEORM
- Apache Httpd Server 2.2 Auth Password FormatsApachehttpdServerORM
- [20130409]Data file init write等待事件.txt事件
- Getshell Via phpmyadmin SQL Execution In /import.php To Write Evil Webshell File Into DiskPHPSQLImportWebshell
- Log Write Methods can Cause 'log file sync' Waits (文件 ID 1462942.1)AI
- PPM協議的輸出實現協議
- 說說標準伺服器架構(WWW+Image/CSS/JS+File+DB)伺服器架構CSSJS
- FIneCMS /dayrui/libraries/Chart/ofc_upload_image.php Arbitrary File Upload VulUIPHP
- 主題閱讀-組合專案管理PPM專案管理