格式介紹
PCX格式是ZSOFT公司在開發圖像處理軟體Paintbrush時開發的一種格式,基於PC的繪圖程式的專用格式,一般的桌面排版、圖形藝術和視頻捕獲軟體都支持這種格式。PCX支持256色調色板或全24位的RGB,圖像大小最多達64K*64K像素。不支持CMYK或HSI顏色模式,photoshop等多種圖像處理軟體均支持PCX格式。PCX壓縮屬於無損壓縮。
發展過程
PCX這種圖像檔案的形成是有一個發展過程的。最先的PCX雛形是出現在ZSOFT公司推出的名叫PCPAINBRUSH的用於繪畫的商業軟體包中。以後,微軟公司將其移植到Windows環境中,成為Windows系統中一個子功能。先在微軟的Windows3.1中廣泛套用,隨著Windows的流行、升級,加之其強大的圖像處理能力,使PCX同GIF、TIFF、BMP圖像檔案格式一起,被越來越多的圖形圖像軟體工具所支持,也越來越得到人們的重視。
PCX是最早支持彩色圖像的一種檔案格式,最高可以支持256種彩色。PCX設計者很有眼光地超前引入了彩色圖像檔案格式,使之成為早期的PC時代非常流行的圖像檔案格式。
檔案組成
PCX圖像檔案由檔案頭和實際圖像數據構成。檔案頭由128位元組組成,描述版本信息和圖像顯示設備的橫向、縱向解析度,以及調色板等信息:在實際圖像數據中,表示圖像數據類型和彩色類型。PCX圖像檔案中的數據都是用PCXREL技術壓縮後的圖像數據。
PCX是PC機畫筆的圖像檔案格式。PCX的圖像深度可選為l、4、8bit。由於這種檔案格式出現較早,它不支持真彩色。PCX檔案採用RLE行程編碼,檔案體中存放的是壓縮後的圖像數據。因此,將採集到的圖像數據寫成PCX檔案格式時,要對其進行RLE編碼:而讀取一個PCX檔案時首先要對其進行RLE解碼,才能進一步顯示和處理。
實際套用
PCX是Zsoft公司研製的一種常用圖像格式,也是在PC機上使用時間最久的一種點陣圖格式。PCX的最新版本支持24位色彩(256色的調色板或全24位RGB),圖像的大小可達64k×64k個像素。PCX採用遊程長度編碼來壓縮數據,但是有些情況下壓縮效率不高,尤其是對於掃描圖像或視頻圖像。PCX存在許多的版本,其檔案頭中的一個代碼標識了檔案所支持的Zsoft產品版本,不同版本的圖像特點如表1.1所示。
圖像特點
版本號 | 圖像特點 |
0 | 基本的單色(2色)或4色圖像 |
1 | 基本的單色(2色)或4色圖像,另加16位色圖像 |
2 | 基本的單色(2色)或4色圖像,另加24位調色板的256色以及全24位RGB色圖像 |
3 | 基本的單色(2色)或4色圖像, |
4 | 基本的單色(2色)或4色 圖像 |
5 | 基本的單色(2色)或4色、256色圖像以及多平面真彩色圖像 |
PCX檔案頭結構
起始位元組 | 位元組數 | 內容 | 解釋 |
0 | 1 | Zsoft標誌 | 10(0x0a),Zsoft PCX檔案的標誌 |
1 | 1 | 版本號 | 0:PC Paintbrush 2.51:PC Paintbrush 2.8,帶調色板 |
2 | 1 | 編碼 | 1:PCX遊程長度編碼 |
3 | 1 | 位/像素 | 每個平面的位/像素值,可能值為1、2,、4或8 |
4 | 8 | 圖像大小 | 圖像邊界極限為Xmin、Ymin、Xmax、Ymax,以像素為單位 |
12 | 2 | 水平解析度 | 列印時,X方向的每英寸點數 |
14 | 2 | 垂直解析度 | 列印時,Y方向的每英寸點數 |
16 | 48 | 檔案頭調色板 | 16色的“EGA/VGA”頭調色板 |
64 | 1 | 保留位元組 | Zsoft保留,為0 |
65 | 1 | 平面 | 彩色/灰度平面數。PCX圖像可以是單彩色,也可以具有多個彩色平面 |
66 | 2 | 每行位元組數 | 每個色彩平面的每行位元組數,即存儲未壓縮圖像的一個掃描行所需的位元組數,總是偶數 |
68 | 2 | 調色板解釋 | 1:彩色或黑白 2:灰度 |
70 | 2 | 視頻螢幕大小X | 視頻輸出的水平像素數-1 |
72 | 2 | 視頻螢幕大小Y | 視頻輸出的垂直像素數-1 |
74 | 54 | 全空直到檔案結束 | 0 |
PCX數據的解釋
每像素的位數 | 色彩平面數 | 解釋 |
1 | 1 | 單色 |
1 | 2 | 4色 |
1 | 3 | 8色 |
1 | 4 | 16色 |
2 | 1 | 4色 |
2 | 4 | 16色 |
4 | 1 | 16色 |
8 | 1 | 256色 |
8 | 3 | 16.7兆色 |
PCX圖像數據存儲
PCX圖像數據的存儲如果沒有使用調色板,則數據是實際的像素值;否則是調色板表項的索引值。當是實際的像素值時,它們按色彩平面和掃描行存儲。其存儲格式為:
第0行RRRRRR…GGGGGG…BBBBBB…
第1行RRRRRR…GGGGGG…BBBBBB…
第n行RRRRRR…GGGGGG…BBBBBB…
如果有兩個平面,那么色彩是任選的;如果有3個平面,其顏色為RGB;如果有4個平面,則顏色信息包含RGB和光強。光強位只是給像素一種名義上的較高亮度。
當使用調色板時,數據指調色板的索引值,它們構成一個完整的圖像平面,即不會被分解為單獨的色彩平面。數據將按如下的簡單方式排列(i是調色板中的索引值):
第0行iiiiiiiiiiiii…
第1行iiiiiiiiiiiii…
第n行iiiiiiiiiiiii…
i的長度取決於每像素的位數,如每像素位數為4,則i就是半個位元組長。
PCX的編碼是以最大64個重複單元為一組進行壓縮的,不論要記錄的是何種類型的數據,都使用同樣的遊程長度壓縮算法。在掃描行中有編碼間隔標誌,但是,在一個掃描行中的色彩平面之間沒有間隔標誌。同樣,也沒有分隔設定來標識一個掃描行結束。
PCX圖像的調色板
任何PCX檔案,如果像素位數超過1但又只有一個色彩平面,則都需要使用調色板。PCX圖像由3種不同的調色板實現。版本代碼為5的檔案最容易確認。如果有一個色彩平面,則它們會在檔案結尾處使用256色的“VGA”調色板。其他的基於調色板的檔案均使用頭調色板,而頭調色板又有兩種可能的實現,即EGA和CGA。三種不同的調色板介紹如下。
(1)位於檔案末尾的256色“VGA”調色板256色的調色板從檔案末尾(EOF)前768個位元組開始,而且以十進制碼12(十六進制0C)開始(768=256×1位元組×3,每個R、G和B都是1個位元組)。因此,值為n的像素指向調色板中的“EOF-768+3×n”處;後面3個位元組分別為該像素紅、綠、藍的值。
(2)16色的“EGA/VGA”頭調色板頭調色板位於第16~第63位元組,共48個位元組,數據按3元組組織,具有16組3位元組數據,每個位元組分別對應R、G和B。對於為EGA建立的檔案,每種原色只可以有4級,所以每個位元組提供的256個值的範圍被分成4個區域。每個區域與相應的級相對應:063對應第0級、64~127對應第1級、128~192對應第2級、193~254對應第3級。
(3)“CGA”調色板這種調色板現已過時,在PCX的版本5及更高的版本中不再使用。這中方法只需要位元組16和位元組19的最高位數據。
另外,版本5或更高版本的PCX檔案能夠支持24位真彩色的PCX檔案,其色彩平面為3個位平面。