vue使用exif获取图片经纬度的示例代码


Posted in Vue.js onDecember 11, 2020

我上一篇文章写了怎么压缩图片和旋转。这篇写一下怎么看图片的经纬度

注意!!!

只有原图有大量的元数据信息。通过拍照软件如:b612等,拍摄的照片是软件处理过的,所以一定要使用原图来擦查询

下面贴以下代码。

<template>
 <div>
  <input type="file" id="upload" accept="image" @change="upload" />
  <span>{{textData}}</span>
 </div>
</template>
<script>
export default {
 data() {
  return {
   picValue: {},
   headerImage: '',
   textData:''
  };
 },
 components: {},
 methods: {
  upload(e) {
   console.log(e);
   let files = e.target.files || e.dataTransfer.files;
   if (!files.length) return;
   this.picValue = files[0];
   this.imgPreview(this.picValue);
  },
  imgPreview(file) {
   let self = this;
   let Orientation;
   //去获取拍照时的信息,解决拍出来的照片旋转问题
   self.EXIF.getData(file, function() {
    Orientation = self.EXIF.getTag(this, 'Orientation');
   });
   // 看支持不支持FileReader
   if (!file || !window.FileReader) return;

   if (/^image/.test(file.type)) {
    // 创建一个reader
    let reader = new FileReader();
    // 将图片2将转成 base64 格式
    reader.readAsDataURL(file);
    // 读取成功后的回调
    reader.onloadend = function() {
     let result = this.result;
     let img = new Image();
     img.src = result;
     self.postImg(file);
    };
   }
  },
  postImg(val) {
   //这里写接口
   let self = this;
   // document.getElementById('upload')
   // this.EXIF.getData(val, function(r) {
   let r = this.EXIF.getAllTags(val);
   const allMetaData = r;
   let direction;
   if (allMetaData.GPSImgDirection) {
    const directionArry = allMetaData.GPSImgDirection; // 方位角
    direction = directionArry.numerator / directionArry.denominator;
   }
   let Longitude;
   if (allMetaData.GPSLongitude) {
    const LongitudeArry = allMetaData.GPSLongitude;
    const longLongitude =
     LongitudeArry[0].numerator / LongitudeArry[0].denominator +
     LongitudeArry[1].numerator / LongitudeArry[1].denominator / 60 +
     LongitudeArry[2].numerator / LongitudeArry[2].denominator / 3600;
    Longitude = longLongitude.toFixed(8);
   }
   let Latitude;
   if (allMetaData.GPSLatitude) {
    const LatitudeArry = allMetaData.GPSLatitude;
    const longLatitude =
     LatitudeArry[0].numerator / LatitudeArry[0].denominator +
     LatitudeArry[1].numerator / LatitudeArry[1].denominator / 60 +
     LatitudeArry[2].numerator / LatitudeArry[2].denominator / 3600;
    Latitude = longLatitude.toFixed(8);
   }
   self.textData = '我是Longitude' + Longitude + ' ====== '+"我是Latitude" + Latitude
   console.log('我进来了', direction, Longitude, Latitude);
   console.log('allMetaData', allMetaData);
   //接口 axios
   // });
  }
 }
};
</script>

这个功能是下载的exif.js文件,也可以通过npm安装依赖。不过都要挂在到原型链上。

以上就是vue使用exif获取图片经纬度的示例代码的详细内容,更多关于vue 获取图片经纬度的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
浅析VUE防抖与节流
Nov 24 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
vue实现轮播图帧率播放
Jan 26 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
vue完美实现el-table列宽自适应
May 08 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
一篇文章学会Vue中间件管道
Jun 20 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 #Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 #Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 #Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 #Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 #Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 #Vue.js
vue中如何自定义右键菜单详解
Dec 08 #Vue.js
You might like
php时间不正确的解决方法
2008/04/09 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python爬取网页信息的示例
2020/09/24 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
运动会稿件100字
2014/02/21 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
销售内勤岗位职责
2014/04/15 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
创业计划书之酒吧
2019/12/02 职场文书