【夜半寫點啥】Hbuilder+exif.js獲取照片exif資訊
阿新 • • 發佈:2019-01-31
【概】我在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.onload=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