對於專業的攝影師來說,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
3.exif在前端的使用
webuploader插件 前端實現圖片旋轉后上傳(實踐成功)
https://blog.csdn.net/qq_32953487/article/details/84873805
利用exif js及腳本修正圖片的orientation顯示
https://blog.csdn.net/cdnight/article/details/46457241
https://github.com/exif-js/exif-js