【概】我在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