简述
在如今的手机相册里,有一个有趣的功能:地图相册。它能够根据照片拍摄时的位置,将图片展示在地图中,exifReader可以允许我们在前端实现这一功能。
EXIF
照片并非只有我们看到的像素信息,还有一些我们常见的宽高、拍摄时间等等,如果手机相机拍摄时设置了存储地理位置,这些信息也会存储在图片里,这些信息被称作EXIF。
百度定义为:可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
ExifReader
推荐这个库的重要原因,是作者一直在维护这个库,如果在使用中遇到什么问题,可以提issue。
使用
// 引入
import ExifReader from 'exifreader';
// 将图片传入,tags里便是我们需要的照片信息。
// tags.GPSLongitude tags.GPSLatitude是经纬度
const tags = await ExifReader.load(file)
使用起来是很简单的,这里提几个作者给出使用建议,首先,如果你想将所有信息都存储,建议删除MarkerNote,因为它没啥用却非常大
exif.js
exif.js star 4k+,我没使用这个库,最大原因是这个库不再维护,如果遇到一些无法解决的bug,不能方便的解决问题。另一个原因,我在使用过程中,想要获取经纬度坐标,exif.js也返回了经纬度,只不过单位制是度分秒,不是常用的十进制,如果我想将经纬度放在地图里定位,不能直接使用(虽然度分秒转换十进制非常简单)。