首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dateTime提取EXIF数据(特别是GPSLatitude和GPSLongitude)

使用dateTime提取EXIF数据(特别是GPSLatitude和GPSLongitude)
EN

Stack Overflow用户
提问于 2017-04-15 01:32:04
回答 2查看 1.6K关注 0票数 0

我有一个程序,在这个程序中,相机被设置为不断拍照(大约每10秒左右),图片被发送到我服务器上的一个文件夹,然后另一个程序会不断刷新该文件夹,所以我总是在那个特定文件夹中有最新的图片。

HTML文档也会不断刷新,并引用图片位置来获取和显示最新的图像。

我想要做的是提取EXIF数据(当我从活动网页中保存图像并查看它的属性时,我已经验证了EXIF数据的存在)。我想展示DateCreated (我相信这是DateTime)和纬度和经度(我相信是GPSLatitude和)

我偶然发现了一个库,exif-js,对于大多数试图在JavaScript中做同样事情的人来说,这似乎是一种选择。我的代码与README.md文件底部的代码相同,只是更改了img id=“.”和变量名(见下文)。它看起来应该能工作,但是它没有产生任何数据。我的空span元素只是保持为空。

页面刷新前的时间跨度较短,是否有问题?

谢谢你的帮助!

下面是我的代码当前的样子(只是想获取DateTime信息)。我也尝试过GPSLatitude和GPSLongitude标签。

代码语言:javascript
复制
<!-- Library to extract EXIF data -->

<script src="vendors/exif-js/exif-js"></script>
<script type="text/javascript">
window.onload=getExif;
function getExif()
{
    var img1 = document.getElementById("img1");
    EXIF.getData(img1, function() {
        var time = EXIF.getTag(this, "DateTime");
        var img1Time = document.getElementById("img1Time");
        img1Time.innerHTML = `${time}`;
    });

    var img2 = document.getElementById("img2");
    EXIF.getData(img2, function() {
        var allMetaData = EXIF.getALLTags(this);
        var allMetaDataSpan = document.getElementById("Img2Time");
        allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");        
    });
	
}

</script>

EN

回答 2

Stack Overflow用户

发布于 2017-06-13 15:50:33

进入您的exif.js文件,然后转到第930行,然后将其更改为

代码语言:javascript
复制
EXIF.getData = function(img, callback) {
if ((self.Image && img instanceof self.Image
|| self.HTMLImageElement && img instanceof self.HTMLImageElement)
&& !img.complete)
return false;
票数 0
EN

Stack Overflow用户

发布于 2019-11-12 09:51:01

我知道这个问题可能已经解决了,但我想为那些无意中发现这个问题的人提供一个替代的解决方案。

我是一个新库exifr的开发人员,您可能想试试。它是维护的,积极开发的库,重点是性能,并工作在nodejs和浏览器。

代码语言:javascript
复制
    async function getExif() {
        let output = await exifr.parse(imgBuffer)
        console.log('latitude', output.latitude) // converted by the library
        console.log('longitude', output.longitude) // converted by the library
        console.log('GPSLatitude', output.GPSLatitude) // raw value
        console.log('GPSLongitude', output.GPSLongitude) // raw value
        console.log('GPSDateStamp', output.GPSDateStamp)
        console.log('DateTimeOriginal', output.DateTimeOriginal)
        console.log('DateTimeDigitized', output.DateTimeDigitized)
        console.log('ModifyDate', output.ModifyDate)
    }

您还可以尝试库的游乐场并对图像及其输出进行实验,或者查看存储库和文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43421246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档