锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
00000010h: 00 00 00 CE 00 00 00 CE 08 02 00 00 00 F9 7D AA ; ...?..?....槎?
00000020h: 93 00 00 00 09 70 48 59 73 00 00 0A 75 00 00 0A ; ?...pHYs...u...
00000030h: 75 01 4A 25 DD FD 00 00 0C 91 49 44 41 54 78 9C ; u.J%钄?..鎱朌ATx?
00000040h: ED 9D D9 96 DC 2A 0C 45 A9 AC FC FF 2F D7 7D 70 ; 闋嬭磧?.E鈹?/璁卲
00000050h: C7 97 66 10 9A 98 CF 7E C8 EA 54 95 6D 86 83 24 ; 鑿瀎.孌煾姹漈鏄哄敪$
00000060h: 04 B6 3F DF EF 37 00 D0 9F 3F B3 0B 00 6E 01 52 ; .?鍞?.琚??.n.R
00000070h: 03 83 F8 3B BB 00 AB F2 F9 98 0E 47 58 92 01 A9 ; .鍑??顐稓.GX??
89 50 4E 47 0D 0A 1A 0A 鏄疨NG澶撮儴緗插悕鍩燂紝琛ㄧず榪欐槸涓涓狿NG鍥劇墖
00 00 00 0D 鎻忚堪IHDR澶撮儴鐨勫ぇ灝?br />49 48 44 52 鏄?font size="2">Chunk Type Code, 榪欓噷Chunk Type Code=IHDR
00 00 00 CE 00 00 00 CE 08 02 00 00 00 鎻忚堪浜咰hunk Data錛屽畠鏄彲鍙橀暱搴︽暟鎹?font size="2">錛?font size="3">00 00 00 0D 瀹氫箟浜嗛暱搴︿負13涓狟ytes錛屾墍浠?榪欓噷錛屼綘鐪嬪埌鏄?3涓瓧鑺?/font>)
F9 7D AA 93聽鏄IHDR鐨凜RC鏍¢獙
绱ф帴鐫涓嬮潰鐨勫氨鏄痯Hys鏁版嵁鍧楋紝鍘熺悊涔熸槸涓鏍楓?br />
PNG鏍煎紡
PNG鏄?0涓栫邯90騫翠唬涓湡寮濮嬪紑鍙戠殑鍥懼儚鏂囦歡瀛樺偍鏍煎紡錛屽叾鐩殑鏄紒鍥炬浛浠IF鍜孴IFF鏂囦歡鏍煎紡錛屽悓鏃跺鍔犱竴浜汫IF鏂囦歡鏍煎紡鎵涓嶅叿澶囩殑鐗規с傛祦寮忕綉緇滃浘褰㈡牸寮?Portable Network Graphic Format錛孭NG)鍚嶇О鏉ユ簮浜庨潪瀹樻柟鐨勨淧NG's Not GIF鈥濓紝鏄竴縐嶄綅鍥炬枃浠?bitmap file)瀛樺偍鏍煎紡錛岃鎴愨減ing鈥濄侾NG鐢ㄦ潵瀛樺偍鐏板害鍥懼儚鏃訛紝鐏板害鍥懼儚鐨勬繁搴﹀彲澶氬埌16浣嶏紝瀛樺偍褰╄壊鍥懼儚鏃訛紝褰╄壊鍥懼儚鐨勬繁搴﹀彲澶氬埌48浣嶏紝騫朵笖榪樺彲瀛樺偍澶氬埌16浣嶇殑偽閫氶亾鏁版嵁銆侾NG浣跨敤浠嶭Z77媧劇敓鐨勬棤鎹熸暟鎹帇緙╃畻娉曘?/font>
PNG鏂囦歡鏍煎紡淇濈暀GIF鏂囦歡鏍煎紡鐨勪笅鍒楃壒鎬э細
浣跨敤褰╄壊鏌ユ壘琛ㄦ垨鑰呭彨鍋氳皟鑹叉澘鍙敮鎸?56縐嶉鑹茬殑褰╄壊鍥懼儚銆?
嫻佸紡璇?鍐欐ц兘(streamability)錛氬浘鍍忔枃浠舵牸寮忓厑璁歌繛緇鍑哄拰鍐欏叆鍥懼儚鏁版嵁錛岃繖涓壒鎬у緢閫傚悎浜庡湪閫氫俊榪囩▼涓敓鎴愬拰鏄劇ず鍥懼儚銆?
閫愭閫艱繎鏄劇ず(progressive display)錛氳繖縐嶇壒鎬у彲浣垮湪閫氫俊閾捐礬涓婁紶杈撳浘鍍忔枃浠剁殑鍚屾椂灝卞湪緇堢涓婃樉紺哄浘鍍忥紝鎶婃暣涓疆寤撴樉紺哄嚭鏉ヤ箣鍚庨愭鏄劇ず鍥懼儚鐨勭粏鑺傦紝涔熷氨鏄厛鐢ㄤ綆鍒嗚鯨鐜囨樉紺哄浘鍍忥紝鐒跺悗閫愭鎻愰珮瀹冪殑鍒嗚鯨鐜囥?
閫忔槑鎬?transparency)錛氳繖涓ц兘鍙嬌鍥懼儚涓煇浜涢儴鍒嗕笉鏄劇ず鍑烘潵錛岀敤鏉ュ垱寤轟竴浜涙湁鐗硅壊鐨勫浘鍍忋?
杈呭姪淇℃伅(ancillary information)錛氳繖涓壒鎬у彲鐢ㄦ潵鍦ㄥ浘鍍忔枃浠朵腑瀛樺偍涓浜涙枃鏈敞閲婁俊鎭?
鐙珛浜庤綆楁満杞‖浠剁幆澧冦?
浣跨敤鏃犳崯鍘嬬緝銆?/font>
PNG鏂囦歡鏍煎紡涓澧炲姞涓嬪垪GIF鏂囦歡鏍煎紡鎵娌℃湁鐨勭壒鎬э細
姣忎釜鍍忕礌涓?8浣嶇殑鐪熷僵鑹插浘鍍忋?
姣忎釜鍍忕礌涓?6浣嶇殑鐏板害鍥懼儚銆?
鍙負鐏板害鍥懼拰鐪熷僵鑹插浘娣誨姞偽閫氶亾銆?
娣誨姞鍥懼儚鐨勎充俊鎭?
浣跨敤寰幆鍐椾綑鐮?cyclic redundancy code錛孋RC)媯嫻嬫崯瀹崇殑鏂囦歡銆?
鍔犲揩鍥懼儚鏄劇ず鐨勯愭閫艱繎鏄劇ず鏂瑰紡銆?
鏍囧噯鐨勮/鍐欏伐鍏峰寘銆?
鍙湪涓涓枃浠朵腑瀛樺偍澶氬箙鍥懼儚銆?/font>
鏂囦歡緇撴瀯
PNG鍥懼儚鏍煎紡鏂囦歡(鎴栬呯О涓烘暟鎹祦)鐢變竴涓?瀛楄妭鐨凱NG鏂囦歡緗插悕(PNG file signature)鍩熷拰鎸夌収鐗瑰畾緇撴瀯緇勭粐鐨?涓互涓婄殑鏁版嵁鍧?chunk)緇勬垚銆?/font>
PNG瀹氫箟浜嗕袱縐嶇被鍨嬬殑鏁版嵁鍧楋紝涓縐嶆槸縐頒負鍏抽敭鏁版嵁鍧?critical chunk)錛岃繖鏄爣鍑嗙殑鏁版嵁鍧楋紝鍙︿竴縐嶅彨鍋氳緟鍔╂暟鎹潡(ancillary chunks)錛岃繖鏄彲閫夌殑鏁版嵁鍧椼傚叧閿暟鎹潡瀹氫箟浜?涓爣鍑嗘暟鎹潡錛屾瘡涓狿NG鏂囦歡閮藉繀欏誨寘鍚畠浠紝PNG璇誨啓杞歡涔熼兘蹇呴』瑕佹敮鎸佽繖浜涙暟鎹潡銆傝櫧鐒禤NG鏂囦歡瑙勮寖娌℃湁瑕佹眰PNG緙栬瘧鐮佸櫒瀵瑰彲閫夋暟鎹潡榪涜緙栫爜鍜岃瘧鐮侊紝浣嗚鑼冩彁鍊℃敮鎸佸彲閫夋暟鎹潡銆?/font>
(1) PNG鏂囦歡緗插悕鍩?/p>
8瀛楄妭鐨凱NG鏂囦歡緗插悕鍩熺敤鏉ヨ瘑鍒鏂囦歡鏄笉鏄疨NG鏂囦歡銆傝鍩熺殑鍊兼槸錛?/p>
鍗佽繘鍒舵暟 | 137 | 80 | 78 | 71 | 13 | 10 | 26 | 10 |
鍗佸叚榪涘埗鏁?/font> | 89 | 50 | 4e | 47 | 0d | 0a | 1a | 0a |
銆
(2) 鏁版嵁鍧楃殑緇撴瀯
姣忎釜鏁版嵁鍧楅兘鐢辮〃6-07鎵紺虹殑鐨?涓煙緇勬垚銆?/font>
琛?-07 PNG鏂囦歡鏁版嵁鍧楃殑緇撴瀯
鍚嶇О |
瀛楄妭鏁?/p> |
璇存槑 |
Length(闀垮害) | 4瀛楄妭 | 鎸囧畾鏁版嵁鍧椾腑鏁版嵁鍩熺殑闀垮害錛屽叾闀垮害涓嶈秴榪?br />(231錛?)瀛楄妭 |
Chunk Type Code(鏁版嵁鍧楃被鍨嬬爜) | 4瀛楄妭 | 鏁版嵁鍧楃被鍨嬬爜鐢盇SCII瀛楁瘝(A-Z鍜宎-z)緇勬垚 |
Chunk Data(鏁版嵁鍧楁暟鎹? | 鍙彉闀垮害 | 瀛樺偍鎸夌収Chunk Type Code鎸囧畾鐨勬暟鎹?/font> |
CRC(寰幆鍐椾綑媯嫻? | 4瀛楄妭 | 瀛樺偍鐢ㄦ潵媯嫻嬫槸鍚︽湁閿欒鐨勫驚鐜啑浣欑爜 |
銆
鍦ㄨ〃6-07涓紝CRC(cyclic redundancy check)鍩熶腑鐨勫兼槸瀵笴hunk Type Code鍩熷拰Chunk Data鍩熶腑鐨勬暟鎹繘琛岃綆楀緱鍒扮殑銆侰RC鍏蜂綋綆楁硶瀹氫箟鍦↖SO 3309鍜孖TU-T V.42涓紝鍏跺兼寜涓嬮潰鐨凜RC鐮佺敓鎴愬欏瑰紡榪涜璁$畻錛?/font>
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
鏁版嵁鍧楃粨鏋?/p>
1. 鍏抽敭鏁版嵁鍧?/p>
鍏抽敭鏁版嵁鍧椾腑鐨?涓爣鍑嗘暟鎹潡鏄細
(1) 鏂囦歡澶存暟鎹潡IHDR(header chunk)錛氬畠鍖呭惈鏈塒NG鏂囦歡涓瓨鍌ㄧ殑鍥懼儚鏁版嵁鐨勫熀鏈俊鎭紝騫惰浣滀負絎竴涓暟鎹潡鍑虹幇鍦≒NG鏁版嵁嫻佷腑錛岃屼笖涓涓狿NG鏁版嵁嫻佷腑鍙兘鏈変竴涓枃浠跺ご鏁版嵁鍧椼?/font>
鏂囦歡澶存暟鎹潡鐢?3瀛楄妭緇勬垚錛屽畠鐨勬牸寮忓琛?-08鎵紺恒?/font>
琛?-08 PNG鏂囦歡澶撮敭鏁版嵁鍧楃殑緇撴瀯
鍩熺殑鍚嶇О |
瀛楄妭鏁?/p> |
璇存槑 |
Width | 4 bytes | 鍥懼儚瀹藉害錛屼互鍍忕礌涓哄崟浣?/font> |
Height | 4 bytes | 鍥懼儚楂樺害錛屼互鍍忕礌涓哄崟浣?/font> |
Bit depth | 1 byte |
鍥懼儚娣卞害錛?br />绱㈠紩褰╄壊鍥懼儚錛?錛?錛?鎴? 鐏板害鍥懼儚錛?錛?錛?錛?鎴?6 鐪熷僵鑹插浘鍍忥細8鎴?6 |
ColorType | 1 byte |
棰滆壊綾誨瀷錛?br />0錛氱伆搴﹀浘鍍? 1錛?錛?錛?鎴?6 2錛氱湡褰╄壊鍥懼儚錛?鎴?6 3錛氱儲寮曞僵鑹插浘鍍忥紝1錛?錛?鎴?
4錛氬甫偽閫氶亾鏁版嵁鐨勭伆搴﹀浘鍍忥紝8鎴?6 |
Compression method | 1 byte | 鍘嬬緝鏂規硶(LZ77媧劇敓綆楁硶) |
Filter method | 1 byte | 婊ゆ嘗鍣ㄦ柟娉?/font> |
Interlace method | 1 byte |
闅旇鎵弿鏂規硶錛?/font>
0錛氶潪闅旇鎵弿
1錛?Adam7(鐢盇dam M. Costello寮鍙戠殑7 |
銆
(2) 璋冭壊鏉挎暟鎹潡PLTE(palette chunk)錛氬畠鍖呭惈鏈変笌绱㈠紩褰╄壊鍥懼儚((indexed-color image))鐩稿叧鐨勫僵鑹插彉鎹㈡暟鎹紝瀹冧粎涓庣儲寮曞僵鑹插浘鍍忔湁鍏籌紝鑰屼笖瑕佹斁鍦ㄥ浘鍍忔暟鎹潡(image data chunk)涔嬪墠銆傜湡褰╄壊鐨凱NG鏁版嵁嫻佷篃鍙互鏈夎皟鑹叉澘鏁版嵁鍧楋紝鐩殑鏄究浜庨潪鐪熷僵鑹叉樉紺虹▼搴忕敤瀹冩潵閲忓寲鍥懼儚鏁版嵁錛屼粠鑰屾樉紺鴻鍥懼儚銆傝皟鑹叉澘鏁版嵁鍧楃粨鏋勫琛?-09鎵紺恒?/font>
琛?-09 璋冭壊鏉挎暟鎹潡緇撴瀯
鍩熺殑鍚嶇О |
瀛楄妭鏁?/p> |
璇存槑 |
Red | 1 byte | 0 = 榛戯紝255 = 綰?/font> |
Green |
">
0 = 榛戯紝255 = 緇?/font> |
|
Blue | 1 byte | 0 = 榛戯紝255 = 钃?/font> |
銆
璋冭壊鏉垮疄闄呮槸涓涓僵鑹茬儲寮曟煡鎵捐〃錛屽畠鐨勮〃欏規暟鐩彲浠ユ槸1锝?56涓殑涓涓暟錛屾瘡涓〃欏規湁3瀛楄妭錛屽洜姝よ皟鑹叉澘鏁版嵁鍧楁墍鍖呭惈鐨勬渶澶у瓧鑺傛暟涓?68銆?/font>
(3) 鍥懼儚鏁版嵁鍧桰DAT(image data chunk)錛氬畠瀛樺偍瀹為檯鐨勬暟鎹紝鍦ㄦ暟鎹祦涓彲鍖呭惈澶氫釜榪炵畫欏哄簭鐨勫浘鍍忔暟鎹潡銆?/font>
(4) 鍥懼儚緇撴潫鏁版嵁IEND(image trailer chunk)錛氬畠鐢ㄦ潵鏍囪PNG鏂囦歡鎴栬呮暟鎹祦宸茬粡緇撴潫錛屽茍涓斿繀欏昏鏀懼湪鏂囦歡鐨勫熬閮ㄣ?/font>
闄や簡琛ㄧず鏁版嵁鍧楀紑濮嬬殑IHDR蹇呴』鏀懼湪鏈鍓嶉潰錛?琛ㄧずPNG鏂囦歡緇撴潫鐨処END鏁版嵁鍧楁斁鍦ㄦ渶鍚庨潰涔嬪錛屽叾浠栨暟鎹潡鐨勫瓨鏀鵑『搴忔病鏈夐檺鍒躲?/font>
2. 杈呭姪鏁版嵁鍧?/p>
PNG鏂囦歡鏍煎紡瑙勮寖鍒跺畾鐨?0涓緟鍔╂暟鎹潡鏄細
(1) 鑳屾櫙棰滆壊鏁版嵁鍧梑KGD(background color)銆?/font>
(2) 鍩鴻壊鍜岀櫧鑹插害鏁版嵁鍧梒HRM(primary chromaticities and white point)銆傛墍璋撶櫧鑹插害鏄寚褰揜錛滸錛滲錛濇渶澶у兼椂鍦ㄦ樉紺哄櫒涓婁駭鐢熺殑鐧借壊搴︺?/font>
(3) 鍥懼儚緯鏁版嵁鍧梘AMA(image gamma)銆?/font>
(4) 鍥懼儚鐩存柟鍥炬暟鎹潡hIST(image histogram)銆?/font>
(5) 鐗╃悊鍍忕礌灝哄鏁版嵁鍧梡HYs(physical pixel dimensions)銆?/font>
(6) 鏍鋒湰鏈夋晥浣嶆暟鎹潡sBIT(significant bits)銆?/font>
(7) 鏂囨湰淇℃伅鏁版嵁鍧梩EXt(textual data)銆?/font>
(8) 鍥懼儚鏈鍚庝慨鏀規椂闂存暟鎹潡tIME (image last-modification time)銆?/font>
(9) 鍥懼儚閫忔槑鏁版嵁鍧梩RNS (transparency)銆?/font>
(10) 鍘嬬緝鏂囨湰鏁版嵁鍧梲TXt (compressed textual data)銆?/font>
3. 鏁版嵁鍧楁憳瑕?/p>
鍏抽敭鏁版嵁鍧椼佽緟鍔╂暟鎹潡鍜屼笓鐢ㄥ叕鍏辨暟鎹潡(special-purpose public chunks)緇煎悎鍦ㄨ〃6-10涓?/font>
琛?-10 PNG鏂囦歡鏍煎紡涓殑鏁版嵁鍧?/font>
鏁版嵁鍧楃鍙?/p> |
鏁版嵁鍧楀悕縐?/p> |
澶氭暟鎹潡 |
鍙夊惁 |
浣嶇疆闄愬埗 |
||
IHDR | 鏂囦歡澶存暟鎹潡 |
鍚?/p> |
鍚?/p> |
絎竴鍧?/font> | ||
cHRM | 鍩鴻壊鍜岀櫧鑹茬偣鏁版嵁鍧?/font> |
鍚?/p> |
鏄?/p> |
鍦≒LTE鍜孖DAT涔嬪墠 | ||
gAMA | 鍥懼儚緯鏁版嵁鍧?/font> |
鍚?/p> |
鏄?/p> |
鍦≒LTE鍜孖DAT涔嬪墠 | ||
sBIT | 鏍鋒湰鏈夋晥浣嶆暟鎹潡 |
鍚?/p> |
鏄?/p> |
鍦≒LTE鍜孖DAT涔嬪墠 | ||
PLTE | 璋冭壊鏉挎暟鎹潡 |
鍚?/p> |
鏄?/p> |
鍦↖DAT涔嬪墠 | ||
bKGD | 鑳屾櫙棰滆壊鏁版嵁鍧?/font> |
鍚?/p> |
鏄?/p> |
鍦≒LTE涔嬪悗IDAT涔嬪墠 | ||
hIST | 鍥懼儚鐩存柟鍥炬暟鎹潡 |
鍚?/p> |
鏄?/p> |
鍦≒LTE涔嬪悗IDAT涔嬪墠 | ||
tRNS | 鍥懼儚閫忔槑鏁版嵁鍧?/font> |
鍚?/p> |
鏄?/p> |
鍦≒LTE涔嬪悗IDAT涔嬪墠 | ||
oFFs | (涓撶敤鍏叡鏁版嵁鍧? |
鍚?/p> |
鏄?/p> |
鍦↖DAT涔嬪墠 | ||
pHYs | 鐗╃悊鍍忕礌灝哄鏁版嵁鍧?/font> |
鍚?/p> |
鏄?/p> |
鍦↖DAT涔嬪墠 | ||
sCAL | (涓撶敤鍏叡鏁版嵁鍧? |
鍚?/p> |
鏄?/p> |
鍦↖DAT涔嬪墠 | ||
IDAT | 鍥懼儚鏁版嵁鍧?/font> |
鏄?/p> |
鍚?/p> |
涓庡叾浠朓DAT榪炵畫 | ||
tIME | 鍥懼儚鏈鍚庝慨鏀規椂闂存暟鎹潡 |
鍚?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
tEXt | 鏂囨湰淇℃伅鏁版嵁鍧?/font> |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
zTXt | 鍘嬬緝鏂囨湰鏁版嵁鍧?/font> |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
fRAc | (涓撶敤鍏叡鏁版嵁鍧? |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
gIFg | (涓撶敤鍏叡鏁版嵁鍧? |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
gIFt | (涓撶敤鍏叡鏁版嵁鍧? |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
gIFx | (涓撶敤鍏叡鏁版嵁鍧? |
鏄?/p> |
鏄?/p> |
鏃犻檺鍒?/font> | ||
IEND | 鍥懼儚緇撴潫鏁版嵁 |
鍚?/p> |
鍚?/p> |
鏈鍚庝竴涓暟鎹潡 |
銆
tEXt鍜寊TXt鏁版嵁鍧椾腑鐨勬爣鍑嗗叧閿瓧錛?/p>
Title |
鍥懼儚鍚嶇О鎴栬呮爣棰?/p> |
Author |
鍥懼儚浣滆呭悕 |
Description |
鍥懼儚璇存槑 |
Copyright |
鐗堟潈澹版槑 |
CreationTime |
鍘熷浘鍒涗綔鏃墮棿 |
Software |
鍒涗綔鍥懼儚浣跨敤鐨勮蔣浠?/p> |
Disclaimer |
寮冩潈 |
Warning |
鍥懼儚鍐呭璀﹀憡 |
Source |
鍒涗綔鍥懼儚浣跨敤鐨勮澶?/p> |
Comment |
鍚勭娉ㄩ噴 |
Type | Description | |
Character | 鏂囦歡綾誨瀷錛岄氬父鏄疊M寮澶?/td> | |
32-bit Int | 鏂囦歡澶у皬錛屽崟浣峛yte | |
16-bit Int | 淇濈暀 | |
16-bit Int | 淇濈暀 | |
32-bit Int | 浣嶅浘鍐呭(A.4)寮濮嬬殑瀛楄妭鍋忕Щ |
Type | Description | |
32-bit Int | 淇℃伅澶寸殑澶у皬(瀛楄妭鏁? | |
32-bit Int | 浣嶅浘鐨勫搴︼紙濡?024鍍忕礌錛?/td> | |
32-bit Int | 浣嶅浘鐨勯珮搴?濡?68鍍忕礌) | |
16-bit Int | Number of bitplanes (should be 1) | |
16-bit Int | 鐢ㄥ灝戜釜浣嶅幓鎻忚堪涓涓儚绱?1, 4, 8, or 24) | |
32-bit Int | 浣跨敤鐨勫帇緙╃被鍨?/td> | |
32-bit Int | 濡傛灉浣跨敤浜嗗帇緙╋紝闇瑕佹寚瀹氫綅鍥劇殑瀹為檯澶у皬 | |
32-bit Int | 姣忕背鐨勬按騫沖儚绱犵殑鏁伴噺(鐢ㄤ簬鏀懼ぇ緙╁皬)聽 | |
32-bit Int | 姣忕背鐨勫瀭鐩村儚绱犵殑鏁伴噺(鐢ㄤ簬鏀懼ぇ緙╁皬)聽 | |
32-bit Int | 瀹為檯鐢ㄥ埌鐨勯鑹叉暟閲?/td> | |
32-bit Int | 杈冮噸瑕侀鑹茬殑鏁伴噺錛堢敤浜庡噺灝戦鑹叉暟錛?/td> |