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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
详解Vue的options
May 15 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
vue 自定义组件添加原生事件
Apr 21 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 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 数组二分法查找函数代码
2010/02/16 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
laravel model 两表联查示例
2019/10/24 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
javascript this详细介绍
2016/09/19 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
Python入门篇之正则表达式
2014/10/20 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
计算机软件个人的自荐信范文
2013/12/01 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
教学改革实施方案
2014/03/31 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技