企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### EXIF是什么: **可交换图像文件格式**(英语:Exchangeable image file format,官方简称**Exif**),是专门为[数码相机](https://baike.baidu.com/item/%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA/277472?fromModule=lemma_inlink)的[照片](https://baike.baidu.com/item/%E7%85%A7%E7%89%87/1465692?fromModule=lemma_inlink)设定的,可以记录数码照片的属性信息和拍摄数据。如果:时间、位置等 **场景:当我们发送微信图片时,如果选择的是原图,则可以看到完整的信息,如果不是原图,会被压缩,破坏掉EXIF信息,所有没法获取图片的所有信息** 找到两张相同的图,一张是原图,一张是压缩后的,然后到百度一个exif查看器,查看结果 **非原图:只有基础信息** ![](https://img.kancloud.cn/39/72/3972a9be4e8548c708f5532779370cf3_1231x1129.png) **原图:多出很多信息** ![](https://img.kancloud.cn/af/ca/afca41ee7b0f0c294d6b7c8f286f386f_766x1374.png) **CDN:** ``` <script src="https://cdn.jsdelivr.net/npm/exif-js"></script> 方法: EXIF.getData(img, callback)获取图像的数据 EXIF.getTag(img, tag)获取图像的某个数据 EXIF.getAllTags(img)获取图像的全部数据,值以对象的方式返回 EXIF.pretty(img)获取图像的全部数据,值以字符串的方式返回 ``` 放入刚才的两张图片,调用exif.js去获取图片信息:可以看到原图能获取到图片信息,非原图获取的则是空的 ``` <div> <img width="300" height="300" id="img1" src="./1.jpg" alt=""> <p>非原图</p> </div> <div> <img width="300" height="300" id="img2" src="./2.jpg" alt=""> <p>原图</p> </div> <script> const file1 = document.querySelector('#img1');//获取非原图 const file2 = document.querySelector('#img2');//获取原图 file1.onload = () => { getData(file1,"非原图=>") } file2.onload = () => { getData(file2,"原图信息-----") } function getData(file,a) { EXIF.getData(file, function () { const data = EXIF.pretty(file); console.log(data,a); }) } </script> ``` ![](https://img.kancloud.cn/d0/f4/d0f44af63f2abb632806285dc6bdd660_1156x1066.png)