2017-04-15 88 views
0

我有一个程序,其中的相机设置为不断拍照(大约每隔10秒左右),并将照片发送到我的服务器上的文件夹,那么另一个程序会不断刷新该文件夹,以便始终在该特定文件夹中放置最近的图片。用JavaScript提取EXIF数据(特别是dateTime和GPSLatitude和GPSLongitude)

存在一个不断刷新的HTML文档,并引用该图片位置来获取并显示最新的图像。

我想要做的是提取EXIF数据(我已经验证存在,当我从活动网页保存图像,并查看它的属性)。我想显示dateCreated会(我相信这是日期时间)和经纬度(我相信是GPSLatitudeGPSLongitude)。

我遇到了这个库,exif-js,这似乎是大多数人试图在JavaScript中做同样的事情的前提。我的代码看起来与README.md文件底部的代码相同,只是我更改了我的img id =“....”和变量名称(请参阅下文)。它似乎应该可以工作,但它不会产生任何数据。我空的跨度元素只是空着。

刷新前页面的时间间隔短是否存在问题?

感谢您的帮助!

这是我的代码目前的样子(只是想获得日期时间信息)。我也尝试过GPSLatitude和GPSLongitude标签。

<!-- 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");   
 
    }); 
 
\t 
 
} 
 

 
</script>

回答

0

进入乌尔exif.js文件,然后转到行930,然后将其更改为

EXIF.getData = function(img, callback) { 
if ((self.Image && img instanceof self.Image 
|| self.HTMLImageElement && img instanceof self.HTMLImageElement) 
&& !img.complete) 
return false;