對于專業的攝影師來說,Exif信息是很重要的信息,也包含了非常多的東西
1.EXIF
EXIF(Exchangeable Image File)是“可交換圖像文件”的縮寫,當中包含了專門為數碼相機的照片而定制的元數據,可以記錄數碼照片的拍攝參數、縮略圖及其他屬性信息。
Exif是一種圖像文件格式,它的數據存儲與JPEG格式是完全相同的。利用任何可以查看JPEG文件的看圖軟件瀏覽Exif格式的照片,但并不是所有的圖形程序都能處理Exif信息。
- 拍攝日期
- 拍攝器材(機身、鏡頭、閃光燈等)
- 拍攝參數(快門速度、光圈F值、ISO速度、焦距、測光模式等)
- 圖像處理參數(銳化、對比度、飽和度、白平衡等)
- 圖像描述及版權信息
- GPS定位數據
- 縮略圖
?
2.exif.js查看
下載地址:http://code.ciaoca.com/javascript/exif-js/
使用方法非常簡單,引用腳本,使用api方法即可獲取
API 方法如
名稱 | 說明 |
---|---|
EXIF.getData(img, callback) | 獲取圖像的數據 能兼容尚未支持提供 EXIF 數據的瀏覽器獲取到元數據。 |
EXIF.getTag(img, tag) | 獲取圖像的某個數據 |
EXIF.getAllTags(img) | 獲取圖像的全部數據,值以對象的方式返回 |
EXIF.pretty(img) | 獲取圖像的全部數據,值以字符串的方式返回 |
示例代碼
EXIF.getData(document.getElementById('img'), function(){ EXIF.getAllTags(this); EXIF.getTag(this, 'Orientation'); });//img是image的id
缺點:每次都要多引用exif.js腳本,而且如果顯示的是縮略圖,就會捉襟見肘
3.exif類庫
類庫1
https://www.codeproject.com/articles/43665/exiflibrary-for-net
類庫2
https://www.codeproject.com/Articles/27242/ExifTagCollection-An-EXIF-metadata-extraction-libr
我使用的是第二種,只因為源碼簡單
ExifTagCollection exif = new ExifTagCollection(@"c:\somefile.jpg");foreach (ExifTag tag in exif)Console.Out.WriteLine(tag);
如果是在類庫中使用,文件路徑獲取可使用以下方法
//獲取當前應用程序域的基目錄 AppDomain.CurrentDomain.BaseDirectory
?