我有一个小“大”问题。
我使用agile-uploader上传多个图像,这个组件调整了所有图片的大小(它工作得很好),但是这样做我丢失了exif数据。
我可以使用JS在客户端读取exif数据吗?鉴于这不是同一个名称域。
是的。有一个新图书馆exifr https://github.com/MikeKovarik/exifr你可以用它来做到这一点。它是一个维护、积极开发的库,重点关注性能,并且可以在 Nodejs 和浏览器中运行。
从一个文件中提取 exif 的简单示例:
document.querySelector('#filepicker').addEventListener('change', async e => {
let file = e.target.files[0]
let exifData = await exif.parse(file)
console.log('exifData', exifData)
})
从多个文件中提取 exif 的复杂示例:
document.querySelector('#filepicker').addEventListener('change', async e => {
let files = Array.from(e.target.files)
let promises = files.map(exif.parse)
let exifs = await Promise.all(promises)
let dates = exifs.map(exif => exif.DateTimeOriginal.toGMTString())
console.log(`${files.length} photos taken on:`, dates)
})
您甚至可以提取嵌入在文件中的缩略图:
let img = document.querySelector("#thumb")
document.querySelector('input[type="file"]').addEventListener('change', async e => {
let file = e.target.files[0]
img.src = await exifr.thumbnailUrl(file)
})
您还可以尝试图书馆的操场 http://mutiny.cz/exifr/并尝试图像及其输出,或者查看存储库和文档 https://github.com/MikeKovarik/exifr.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)