【概】我在H5端需要这么一个功能::本地选择图片并获取exif信息(主要是创建时间、和地点等),翻了半天Hbuilder文档,没发现这个api,于是目光转焦到强大滴exif.js上。
step1、引入文件
<script type="text/javascript" src="js/exif.js" ></script>
step2、本地选择图片文件(只要求选择文件,不拍照)。
mui.plusReady(function(){
******
plus.gallery.pick(function(path){
console.log(path)
plus.io.resolveLocalFileSystemURL(path, function(entry){
waiting("正在压缩图片 \n ...... ");
src= entry.toLocalURL();
compress(src);//把获取图片信息放在了这一步上
saved=false;//隐藏按钮
$(".icon-del").hide();
$(".icon-upload").hide();
});
});
******
})
step3、图片压缩与获取exif信息
这儿容易入坑,获取图片信息需要在图片加载完成后(论坛友人提示),不然是无法获取到图片信息滴,代码如下:
function compress(src){
src=src+'';
spstr = src.split("/");
var bname=spstr[spstr.length-1];//图片名称
plus.zip.compressImage({
src:src,
overwrite: true,
dst:"_doc/img/"+bname,
quality:15
},
function(success) {
closewaiting("500");//关闭等待
var s=eval(success);//解析json数据
var imgsrc=s.target;
var img=document.createElement("img");//建立图片对象
img.src=src;
img.οnlοad=function(){
EXIF.getData(img,function(){//图片加载完成再获取信息
var time=EXIF.getTag(img,'DataTimgOriginal');//直接获取图片的时间,DataTimeOriginal是exif滴信息标识,就看你需要啥
})
}
},function(error){
//console.log(error.message)
//console.log(error.code);
})
}
http://code.ciaoca.com/javascript/exif-js/
如果对你有帮助的话请给个赞,没有那就putdown咯!
if it s works and helpful,just give me five