piexifjs 写入照片头文件_忘川追影的博客-CSDN博客_piexifjs

感谢这位楼主

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>写入图片头文件</title>
  </head>
  <body>
    <input type="file" id="files" />
    <button
      type="button"
      id="btn1"
      style="position: absolute; top: 5px; right: 10px"
    >
      读取图片头文件
    </button>
    <div id="resized"></div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/exif-js/2.3.0/exif.min.js"></script>
    <script src="./piexif.js"></script>
    <script>
      function handleFileSelect(evt) {
        var file = evt.target.files[0];
 
        var zeroth = {};
        var exif = {};
        var gps = {};
        zeroth[piexif.ImageIFD.Make] = 'lyf';
 
        //经纬度写入
        var lat = 61.123456789;
        var lng = 25.123456789;
        gps[piexif.GPSIFD.GPSLatitudeRef] = lat < 0 ? 'S' : 'N';
        gps[piexif.GPSIFD.GPSLatitude] = piexif.GPSHelper.degToDmsRational(lat);
        gps[piexif.GPSIFD.GPSLongitudeRef] = lng < 0 ? 'W' : 'E';
        gps[piexif.GPSIFD.GPSLongitude] = piexif.GPSHelper.degToDmsRational(
          lng
        );
        //方位角写入
        gps[piexif.GPSIFD.GPSImgDirection] = [123456, 100];
 
        var exifObj = { '0th': zeroth, Exif: exif, GPS: gps };
        var exifStr = piexif.dump(exifObj);
 
        var reader = new FileReader();
        reader.onload = function (e) {
          var inserted = piexif.insert(exifStr, e.target.result);
 
          var image = new Image();
          image.src = inserted;
          image.width = 200;
          image.id = 'img1';
          var el = $('<div></div>').append(image);
          $('#resized').prepend(el);
        };
        reader.readAsDataURL(file);
      }
 
      document
        .getElementById('files')
        .addEventListener('change', handleFileSelect, false);
 
      document.getElementById('btn1').onclick = function () {
        EXIF.getData(document.getElementById('img1'), function () {
          const allMetaData = EXIF.getAllTags(this);
 
          let direction;
          if (allMetaData.GPSImgDirection) {
            const directionArry = allMetaData.GPSImgDirection; // 方位角
            direction = directionArry.numerator / directionArry.denominator;
          }
 
          // 经度 numerator(数值) 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);
          }
 
          // 纬度 numerator(数值) denominator(自身的进制) 三个参数 度、分、秒换算 ,保留小数点后两位
          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);
          }
 
          let originalTime;
          if (allMetaData.DateTimeOriginal) {
            originalTime = allMetaData.DateTimeOriginal; // 时间
          }
 
          console.log('照片EXIF信息', allMetaData);
          console.log('经度,纬度,方位角', Longitude, Latitude, direction);
        });
      };
    </script>
  </body>
</html>

下面才是我的代码,红色字体获取图片经纬度、拍摄日期

layui.upload.render({

elem: op.elem,

url : basePath + '/admin/home/uploadFilesB2Info.do',

accept: 'images',

acceptMime: 'image/*',

multiple: true,

auto: false,

bindAction: op.bindAction,

before: function(obj){

},

choose: function(obj){

//读取本地文件

obj.preview(function(index, file, result){

//获取照片EXIF信息

EXIF.getData(file, function () {

const allMetaData = EXIF.getAllTags(this);

let direction;

if (allMetaData.GPSImgDirection) {

const directionArry = allMetaData.GPSImgDirection; // 方位角

direction = directionArry.numerator / directionArry.denominator;

}

// 经度 numerator(数值) 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);

}

// 纬度 numerator(数值) denominator(自身的进制) 三个参数 度、分、秒换算 ,保留小数点后两位

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);

}

let originalTime;

if (allMetaData.DateTimeOriginal) {

originalTime = allMetaData.DateTimeOriginal; // 时间

}

console.log('照片EXIF信息', allMetaData);

console.log('经度,纬度,方位角', Longitude, Latitude, direction);

console.log('拍摄日期', originalTime);

});

});

},

done: function(res, index, upload){

},

error: function(index, upload){

}

});

imgUpload({

elem: '#qtImgUpload',

bindAction: '#qtImgUploadAction',

listview: "#galleryImgList",

table:'tableOther',

file_desc: '其它',

callbackfun: function(){

}

});

js 获取图片经纬度及写经纬度相关推荐

  1. js 获取图片url的Blob值并预览

    js 获取图片url的Blob值并预览 1)使用 XMLHttpRequest 对象获取图片url的Blob值 参考:https://www.cnblogs.com/tujia/p/6483255.h ...

  2. js获取图片真实尺寸 - 代码篇

    js获取图片真实尺寸 - 代码篇 代码案例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...

  3. php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码

    如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...

  4. js获取图片点坐标值

    js获取图片点坐标值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  5. js点击获取—通过JS获取图片的相对坐标位置

    一.通过JS获取鼠标点击时图片的相对坐标位置 源代码如下所示: 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <h ...

  6. JS获取图片的EXIF信息+纠正图片方向

    前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...

  7. Js获取图片主色调,近似色,互补色,以及根据图片颜色获取主题配色方案详解、插件。

    Js获取图片主色调,近似色,互补色,以及根据图片颜色获取主题配色方案详解.插件. **应用场景:**在很多时候,前端开发过程中需要动态的获取图片的主要的颜色值,并根据主色调去调整主题样式的颜色或者模拟 ...

  8. php 获得图片大小,js获取图片大小_php 或js获取图片大小

    摘要 腾兴网为您分享:php 或js获取图片大小,之了课堂,云集,宜信,学堂在线等软件知识,以及手机东方财富通,航空证券软件,日历星座,大吉大利晚上吃鸡图片,一米鲜,熊猫云,sketchup动画,空文 ...

  9. 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸

    前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...

最新文章

  1. 多数据中心的百万级消息服务实战
  2. 不能正常关机的处理办法
  3. 【项目管理】质量管理
  4. 微软发布研究报告:企业数据管理普遍混乱,揭秘大数据分析趋势以及PowerBI的崛起机遇...
  5. android自定义view(自定义数字键盘)
  6. 2021年基金什么时候布局?
  7. python是什么软件-python是什么软件
  8. 机器人产业进入“快车道”, 细分领域深耕细作成趋势。...
  9. flv 文件格式详解
  10. 电容触摸屏测试软件,电容式触摸屏FPCA的整板测试方案
  11. 关于偏微分、全微分总结
  12. 487计算机毕业设计
  13. 贪吃蛇c语言存档读档,刚学C语言,想写一个贪吃蛇的代码
  14. 'wx' is not defined no-undef
  15. 针对教育和软件行业的多平台Java勒索软件分析
  16. STM32单片机RGB红蓝调光植物补光系统红光蓝光PWM调色调节亮度
  17. 推荐 15 款编程游戏,从此谁都可以学编程!
  18. 微软CTO韦青:深度学习不仅是知识,而是思维范式的转变
  19. android 短信合并,短信合并+我的空间/总结_veaka ONLY U_手机Android频道-中关村在线...
  20. KMP算法详解:使用部分匹配表PMT来理解KMP算法,使用Java实现

热门文章

  1. CVPR2022 | 重新审视池化:你的感受野不是最理想的
  2. 用音响里的零件做迷你小机器人_优必选和腾讯一起做了款人形机器人,搭载“小微”的它想比智能音箱更好用...
  3. 现在能聊天的机器人都有哪些?
  4. springboot+mybatis打包时,单元测试类报错
  5. 【小5聊】代码管理工具之git等代码账号使用凭据管理器查看windows凭据
  6. 移动端网页的基础制作
  7. Android自定义View 实现窗帘控件
  8. 【Java进阶营】阿里架构师加持,十分钟入门RocketMQ,就是这么简单
  9. 12-Factor App简介
  10. 文本输入框input实现字母大小写转换