1. 程式人生 > >【夜半寫點啥】Hbuilder+exif.js獲取照片exif資訊

【夜半寫點啥】Hbuilder+exif.js獲取照片exif資訊

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