PNG文件格式保留了GIF文件格式的以下特征:
使用顏色查找表或調色板可以支持256色的彩色圖像。
流暢性讀/寫性能
圖像文件格式允許連續讀寫圖像數據,非常適合在通信過程中生成和顯示圖像。
漸進顯示(漸進顯示)
該功能可以在通信鏈路上傳輸圖像文件的同時在終端上顯示圖像,在顯示圖像的整體輪廓後逐漸顯示圖像的細節,即先顯示低分辨率的圖像,然後逐漸提高其分辨率。
透明度(透明度)
這種性能可以使圖像的某些部分不顯示出來,可以用來創造壹些有特色的圖像。
輔助信息
此功能可用於在圖像文件中存儲壹些文本註釋信息。
獨立於計算機軟硬件環境。
使用無損壓縮。
在PNG文件格式中,應該添加以下在GIF文件格式中不可用的功能:
每個像素是48位真彩色圖像。
每個像素是16位的灰度圖像。
您可以為灰度和真彩色貼圖添加alpha通道。
添加圖像的伽瑪信息。
使用循環冗余碼(CRC)來檢測損壞的文件。
加快圖像顯示的逐次逼近顯示模式。
標準讀/寫工具包。
多個圖像可以存儲在壹個文件中。
編輯此段落
PNG文件的使用:
PNG格式圖片因其高保真、透明、文件小等特點,被廣泛應用於網頁設計和平面設計中。由於網絡通信中的帶寬限制,無法在保證圖片清晰逼真的前提下,在網頁中廣泛使用文件較大的bmp和jpg文件。gif文件雖然小,但是顏色嚴重失色,所以PNG文件從誕生之日起就開始流行。
PNG格式的圖片通常被我們用作素材。在設計過程中,不可避免地要搜索相關文件。如果是JPG格式的文件,摳圖是不可避免的,費時費力。gif格式雖然是透明的,但是它只是對壹種或幾種顏色完全透明,沒有考慮對周圍顏色的影響,所以PNG格式的文件就成了這個時候我們的最佳選擇。我們經常看到整個頁面都用同樣的PNG圖片作為背景,還有按鈕,導航欄等。都是在壹張照片上拍攝的。其實就是這個原因。原因是PNG圖片在下載過程中占用帶寬少,顏色逼真,下載壹次就可以重復使用。
編輯此段落
文件結構
PNG圖像格式文件(或數據流)由8字節PNG文件簽名字段和根據特定結構組織的三個以上的塊組成。
PNG定義了兩種類型的數據塊,壹種稱為關鍵塊(critical chunk),是標準的數據塊,另壹種稱為輔助塊(ancillary chunks),是可選的數據塊。關鍵數據塊定義了四個標準數據塊,每個PNG文件都必須包含它們,PNG讀寫軟件也必須支持這些數據塊。雖然PNG文件規範不要求PNG編解碼器對可選數據塊進行編解碼,但是規範提倡支持可選數據塊。
(1) PNG文件簽名域
8字節的PNG文件簽名字段用於識別文件是否是PNG文件。該字段的值為:
小數137 80 78 71 13 10 26 10。
十六進制數89 50 4e 47 0d 0a 1a 0a
(2)數據塊的結構
每個數據塊由四個字段組成,如表6-07所示。
表6-07 PNG文件數據塊結構
名稱字節數描述
Length(長度)4 bytes指定數據塊中數據字段的長度,其長度不得超過。
(231-1)字節
塊類型代碼4字節塊類型代碼由ASCII字母(a-z和A-Z)組成。
塊數據可變長度存儲根據塊類型代碼指定的數據。
CRC(循環冗余檢測)4字節存儲用於檢測是否有錯誤的循環冗余碼。
在表6-07中,CRC(循環冗余校驗)字段中的值是根據塊類型代碼字段和塊數據字段中的數據計算的。ISO 3309和ITU-T V.42中定義了CRC的具體算法,其值是根據以下CRC碼生成多項式計算的:
x32+x26+x23+x22+x 16+x 12+x 10+x 10+x8+x7+X5+x4+x2+x+1
編輯此段落
數據塊結構
1.關鍵數據塊
關鍵數據塊中的四個標準數據塊是:
(1)頭塊IHDR(header chunk):它包含了PNG文件中存儲的圖像數據的基本信息,它應該作為PNG數據流中的第壹塊出現,壹個PNG數據流中只能有壹個頭塊。
文件頭數據塊由13字節組成,其格式如表6-08所示。
表6-08 PNG文件頭關鍵數據塊的結構
域名的字節數的描述
Width 4字節圖像寬度,以像素為單位。
Height 4字節圖像高度,以像素為單位。
位深度1字節圖像深度:
索引彩色圖像:1、2、4或8
灰度圖像:1,2,4,8或16。
真彩色圖像:8或16
ColorType 1字節顏色類型:
0:灰度圖像,1,2,4,8或16。
2:真彩色圖像,8或16
3:索引彩色圖像,1,2,4或8 4:帶有alpha通道數據的灰色圖像,8或16。
6:帶有alpha通道數據的真彩色圖像,8或16。
壓縮方法1字節壓縮方法(LZ77導數算法)
過濾方法1字節過濾方法
隔行掃描方式1字節隔行掃描方式:0:非隔行掃描。
1: Adam7 7 (7由Adam M. Costello開發)
交叉隔行掃描方法)
(2)調色板數據塊PLTE(palette chunk):它包含與索引的彩色圖像相關的顏色轉換數據,它只與索引的彩色圖像相關,並且應該放在圖像數據塊之前。真彩色PNG數據流也可以有調色板數據塊,以便於非真彩色顯示程序使用它來量化圖像數據和顯示圖像。調色板的數據塊結構如表6-09所示。
表6-09調色板數據塊結構
域名的字節數的描述
紅色1字節0 =黑色,255 =紅色。
綠色" >;0 =黑色,255 =綠色
藍色1字節0 =黑色,255 =藍色。
調色板實際上是壹個顏色索引查找表,它的條目數可以是1 ~ 256中的壹個,每個條目有3個字節,所以調色板數據塊包含的最大字節數是768。
(3)圖像數據塊IDAT(image data chunk):它存儲實際數據,數據流可以包含連續序列中的多個圖像數據塊。
(4)圖像尾塊(Image Trailer Chunk):用於標記PNG文件或數據流已經結束,必須放在文件的末尾。
對其他數據塊的存儲順序沒有限制,除了指示數據塊開始的IHDR必須放在最前面,而指示PNG文件結尾的IEND數據塊必須放在最後。
2.輔助數據塊
PNG文件格式規範制定的10輔助數據塊有:
(1)背景色數據塊bKGD(背景色)。
(2)原色和白點(CHRM)。所謂白度是指r = g = b =最大時顯示器上產生的白度。
(3)圖像伽瑪。
(4)圖像直方圖數據塊(HIST)。
(5)物理像素尺寸。
(6)樣本sBIT(有效位(SBIT))。
(7)文本信息數據塊(文本數據)。
(8)圖像最後修改時間。
(9)圖像透明數據塊tRNS(透明度)。
(10)壓縮文本數據塊zTXt(壓縮文本數據)。
3.塊摘要
表6-10總結了關鍵數據塊、輔助數據塊和特殊用途的公共數據塊。
表6-6-10 PNG文件格式的數據塊
塊符號塊名稱多塊可選無位置限制
IHDR文件頭數據塊號號第壹塊
cHRM原色和白點數據塊在PLTE和IDAT之前嗎?
伽馬圖像的伽馬數據塊在PLTE和IDAT之前嗎?
sBIT樣本的有效位數據塊是在PLTE和IDAT之前嗎?
PLTE調色板數據塊在IDAT之前嗎?
bKGD背景色數據塊是PLTE之後IDAT之前嗎?
hIST圖像的直方圖數據塊是在PLTE之後,IDAT之前嗎?
tRNS影像的透明數據塊是在PLTE之後,IDAT之前嗎?
OFFs(私有公有* * *數據塊)是在IDAT之前嗎?
pHYs是IDAT之前的物理像素大小的數據塊嗎?
SCAL(私有公有* * *數據塊)在IDAT之前?
IDAT圖像數據塊是否與其他數據塊連續?
時間圖像的最後修改時間數據塊是否無限制。
文本文本信息數據塊是無限的。
zTXt壓縮文本數據塊沒有限制。
FRAc(專用公共* * *數據塊)是無限的。
GIFg(專用公共數據塊)是無限的。
GIFt(專用公共* * *數據塊)不限。
GIFx(專用公共* * *數據塊)不限。
IEND圖像的結束數據沒有最後壹個數據塊
編輯此段落
文本和zTXt數據塊中的標準關鍵字:
標題
圖像名稱或標題
作者
圖像作者姓名
描述
圖像描述
版權
版權聲明
創造時間
原始繪圖創建時間
軟件
用於創建圖像的軟件
放棄
棄權(投票)
警告
圖像內容警告
來源
用於創建圖像的設備
評論
各種評論
-
巴布亞新幾內亞巴布亞新幾內亞(大洋洲的壹個島國)