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
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
May 06 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
ip签名探针
2006/10/09 PHP
php构造函数与析构函数
2016/04/23 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
python 文件和路径操作函数小结
2009/11/23 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python语言描述最大连续子序列和
2017/12/05 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
django删除表重建的实现方法
2019/08/28 Python
python 发送json数据操作实例分析
2019/10/15 Python
python3处理word文档实例分析
2020/12/01 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
工厂保洁员岗位职责
2013/12/04 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
家长会后的感想
2015/08/11 职场文书
公司晚宴祝酒词
2015/08/11 职场文书