|
引言:
EXIF,是英文Exchangeable Image File(可交換圖像文件)的縮寫(xiě),最初由日本電子工業(yè)發(fā)展協(xié)會(huì)(JEIDA --Japan Electronic Industry Development Association) 制訂,目前的版本是修改發(fā)表于1998年6月的2.1版。國(guó)際標(biāo)準(zhǔn)化組織(ISO)正在制訂的相機(jī)文件設(shè)計(jì)標(biāo)準(zhǔn)(DCF -- Design role for Camera File system)就是以EXIF2.1格式為基礎(chǔ)而設(shè)定的。記住,EXIF是一種圖像文件格式,只是文件的后綴名還是沿用大家熟悉的jpg而已。實(shí)際上,EXIF信息就是由數(shù)碼相機(jī)在拍攝過(guò)程中采集一系列的信息,然后把信息放置在我們熟知的jpg文件的頭部,也就是說(shuō)EXIF信息是鑲嵌在JPEG圖像文件格式內(nèi)的一組拍攝參數(shù),主要包括攝影時(shí)的光圈、快門(mén)、ISO、日期時(shí)間等各種與當(dāng)時(shí)攝影條件相關(guān)的訊息,相機(jī)品牌型號(hào),色彩編碼,拍攝時(shí)錄制的聲音以及全球定位系統(tǒng)(GPS)等信息。簡(jiǎn)單的說(shuō),它就好像是傻瓜相機(jī)的日期打印功能一樣,只不過(guò)EXIF信息所記錄的資訊更為詳盡和完備。不過(guò),具有EXIF信息的JPEG圖像文件要比普通的JPEG文件略大一點(diǎn)。就目前市場(chǎng)而言,新一代的數(shù)碼相機(jī)都具有附加EXIF信息功能,大多數(shù)的數(shù)碼相機(jī)廠商也都會(huì)隨數(shù)碼相機(jī)發(fā)售時(shí)附贈(zèng)能夠讀取EXIF信息的軟件,例如 Nikon 系列的數(shù)碼相機(jī)就附贈(zèng) NikonView 軟件,Agfa系列的相機(jī)則附贈(zèng) Photowize V1.8版,而富士相機(jī)附送的EXIF viewer軟件更是這方面的領(lǐng)軍人物(目前已在很多網(wǎng)站提供免費(fèi)下載。還有一部分的數(shù)碼相機(jī)會(huì)自動(dòng)將EXIF信息轉(zhuǎn)存成文檔文件,例如:NIKON CoolPix 990和SONY FD系列。除了硬件廠商隨數(shù)碼相機(jī)附帶的EXIF信息查看軟件,很多專業(yè)的圖像軟件廠商在這方面也不甘示弱,相繼推出自己公司看圖軟件的最新版來(lái)支持這種近乎完美的JPEG-EXIF圖像信息附加技術(shù),如最近剛推出的ACDSee 4.0版本,就對(duì)現(xiàn)在流行的各種數(shù)碼相機(jī)有相當(dāng)好的支持,在EXIF圖像信息附加方面較之其3.0版本也有很大的進(jìn)步。不管是硬件廠商的配套軟件還是專業(yè)名門(mén)的看圖工具,所有這些軟件都是為了方便數(shù)碼攝影者能更方便地保存查看攝影圖像的重要信息。我們將這些讀取EXIF信息的軟件歸納后分為四類(lèi):專業(yè)EXIF信息查看工具(以富士的EXIF viewer為例) 、具有查看EXIF信息的強(qiáng)大通用看圖工具(以ACDSee為例)、支持EXIF信息查看的操作系統(tǒng)(微軟的Windows XP)以及可以修改EXIF信息的另類(lèi)工具(EXIF Editer),而我們這里要講的是通過(guò)C#在WEB上讀取一個(gè)圖片的EXIF信息。
二、相關(guān)類(lèi)(GetEXIFMetaData):
因?yàn)榇a比較長(zhǎng),有五百多行,我只能將關(guān)鍵代碼的片段拿出來(lái)講講,需要源碼的請(qǐng)發(fā)郵件到 yubo@x263.net 索取,或者直接加到MSN上在MSN提供你的郵箱。
這個(gè)類(lèi)中構(gòu)造了兩個(gè)結(jié)構(gòu)MetadataDetail 和 Metadata ,前者是為了存儲(chǔ)EXIF中某元素信息的三種格式,起到中間轉(zhuǎn)化的作用,一個(gè)是十六進(jìn)制的索引信息,一個(gè)是沒(méi)用處理過(guò)的信息代碼,一個(gè)是顯示信息。后面的那個(gè)結(jié)構(gòu)就是存儲(chǔ)一張圖片所有EXIF信息元素的。 有兩個(gè)方法LookupEXIFValue 和 GetEXIFMetaData ,前一個(gè)方法是處理特殊元素的對(duì)應(yīng)顯示的,后者從圖片中讀取相關(guān)信息然后填充到MetaData結(jié)構(gòu)中。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!