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使用vant中的checkbox实现全选功能
Nov 17 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue 页面跳转的实现方式
Jan 12 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 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扩展开发经验分享
2012/09/06 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
Python的Django框架中的Context使用
2015/07/15 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
python中列表和元组的区别
2017/12/18 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python使用KNN算法识别手写数字
2019/04/25 Python
基于matplotlib xticks用法详解
2020/04/16 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
用python制作个音乐下载器
2021/01/30 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
结构工程研究生求职信
2013/10/13 职场文书
挂职思想汇报
2013/12/31 职场文书
个性车贴标语
2014/06/24 职场文书
目标责任书格式
2014/07/28 职场文书
清明节寄语2015
2015/03/23 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
选购到合适的激光打印机
2022/04/21 数码科技