exif大师小程序
这是一款工具类的小程序,可以通过传入图片原图,或者填写图片链接(url)来获取图片的exif信息。
exif解释
相信很多人和我一样并不清楚exif信息是啥。我们先看一段wiki解释
Exchangeable image file format (officially Exif, according to JEIDA/JEITA/CIPA specifications) is a standard that specifies the formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras.
翻译一下大概就是
可交换图像文件格式(Exif,根据JEIDA / JEITA / CIPA规范)是一种标准,用于指定数码相机(包括智能手机),对于图片、音频等数据的各种参数的标签化规范。
exif里面有很多拍摄时的各种参数,如ISO,光圈,焦距,快门速度,感光等,非常的多,但是其实我们小白比较感兴趣的,也是比较隐私的就是:
拍摄器材,型号(器材:iphone,型号:iphoneX),
还是就是拍摄的时间,
拍摄的位置地点(gps相当精确了)。
一张照片可以暴露你很多信息的。
下面看看小程序的图片展示:
原理
这个小程序,一开始是使用图片上传,后端解析后返回给前端的方式来做的,后来为了省服务器,就改成的纯前端的东西了,没有后端。
如今是通过一个<input type="file" id="img" onchange="change"/>
使得用户选择图片, 然后通过js获取图片base64
let base64;
function change(){
// 获取图片文件
let file = document.querySelector('#img').files[0];
let fileReader = new FileReader();
fileReader.onload = function(){
Base64 = this.result;
}
fileReader.readAsDataURL(file)
}
这里就得到了图片的base64,拿到base64后就可以通过调用exif-js来获取exif信息,
exif的方法也是相当的简单
var img2 = document.getElementById("img2");
EXIF.getData(img2, function() {
var allMetaData = EXIF.getAllTags(this);
var allMetaDataSpan = document.getElementById("allMetaDataSpan");
allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");
});
如此,就得到了所有的exif信息,所有信息都放在allMetaData这个对象里。
大家如果想试一试的可以微信搜索 “Exif大师”