天天看點

【夜半寫點啥】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.ο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

繼續閱讀