獲取圖片的EXIF信息


對於專業的攝影師來說,Exif信息是很重要的信息,也包含了非常多的東西

1.EXIF

EXIF(Exchangeable Image File)是“可交換圖像文件”的縮寫,當中包含了專門為數碼相機的照片而定制的元數據,可以記錄數碼照片的拍攝參數、縮略圖及其他屬性信息。

Exif是一種圖像文件格式,它的數據存儲與JPEG格式是完全相同的。利用任何可以查看JPEG文件的看圖軟件瀏覽Exif格式的照片,但並不是所有的圖形程序都能處理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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM