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+vue-router+element-plus初实践
Dec 02 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 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清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
PHP中的事务使用实例
2015/05/26 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python pandas库的安装和创建
2019/01/10 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python实现代码统计工具
2019/09/19 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
python脚本第一行如何写
2020/08/30 Python
python切割图片的示例
2020/11/12 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
自我鉴定思想方面
2013/10/07 职场文书
企业军训感言
2014/02/08 职场文书
小学生家长评语大全
2014/02/10 职场文书
租房合同协议书
2014/04/09 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书