精华内容
下载资源
问答
  • 手机、相机照片管理器,照片文件的拍照时间、标题、备注设置、检索、查看浏览工具,支持excel双向交换信息,快速为电子文档创建信息。缩略图视图样式做了修改,与...Exif信息查看器,GPS定位到百度地图上,优化了说明。
  • 手机、相机照片管理器,招牌呢文件的标题、备注设置、检索、查看浏览工具,Exif信息查看器,GPS定位到百度地图上(单机测试版)
  • 手机图片查看GPS信息

    千次阅读 2019-10-07 09:35:44
    step1:将手机照片传到电脑上。(必须是原图) step2:打开软件“MagicEXIF 元数据编辑” step3:将图片拖进主界面。 注意:如果不是原图,经过微信等传输过的都是经过压缩处理的图片。不能查到相关的GPS信息。 ...

    有些手机相机是默认开启了GPS功能的,所以自带GPS信息。可以查到自己的经纬度。我自己试了一下很精确了。

    step1:将手机照片传到电脑上。(必须是原图)

    step2:打开软件“MagicEXIF 元数据编辑器”

    step3:将图片拖进主界面。

    注意:如果不是原图,经过微信等传输过的都是经过压缩处理的图片。不能查到相关的GPS信息。

     

    展开全文
  • 在判断角度中使用到exif信息查看器 首先在项目中引入exif-js-min import exifmin from '../assets/exif-js-min' 获取版本信息,对ios大于13.4的系统不做图片旋转 逆时针四个方向的数字,是6、1、3、8,在ios低与...

    问题

    通信体验活动这个项目中需要用到手机上传照片,在ios低版本手机上会出现上传图片旋转的问题,因此需要对低版本上传的照片根据旋转的角度再次旋转回来。

    方法

    在判断角度中使用到exif信息查看器

    • 首先在项目中引入exif-js-min
    import exifmin from '../assets/exif-js-min'
    
    • 获取版本信息,对ios大于13.4的系统不做图片旋转
      逆时针四个方向的数字,是6、1、3、8,在ios低与13.4个高于13.4的系统中出现的是相同的,只是低于13.4的会旋转。
    // 获取版本信息
    getVersion (name) {
        var arr = navigator.userAgent.split(' '); 
        var chromeVersion = '';
        let result = 0;
        const reg = new RegExp(name, 'i')
        for(var i=0;i < arr.length;i++){
            if(reg.test(arr[i]))
            chromeVersion = arr[i]
        }
        if(chromeVersion){
            result = chromeVersion.split('/')[1].split('.');
        } else {
            result = ['0', '0', '0'];
        }
        return result
    },
    
    • 对旋转的图片进行角度旋转
    1. 在低版本上 6:逆时针旋转的90度,需要顺时针旋转90度
    2. 1没有旋转
    3. 8顺时针旋转了90度,需要逆时针旋转90度
    4. 3方向倒了,旋转了180度,需要顺时针或者逆时针旋转180度
    //旋转图片函数
    rotateImgFun(objectURL,fileName){
    let img = new Image();
    img.onload = () => {
        let width = img.width;
        let height = img.height;
        let orientation;
        exifmin.getData(img).then(data => {
            orientation = data.orientation || 1;
            if (this.getVersion('safari')[0] >= 605 ) {
                const safariVersion = this.getVersion('version')
                if (safariVersion[0] > 13 && safariVersion[1] > 1) {
                    orientation = -1
                }
            } else {
                //  判断 ios 版本进行处理
                // 针对 ios 版本大于 13.4的系统不做图片旋转
                const isIos  = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/)
                if (isIos) {
                    let version = isIos[1]
                    version = version.split('_')
                    if (version[0] > 13 ||  (version[0] >= 13 && version[1] >= 4)) {
                        orientation = -1
                    }
                }
            }
            
    
            let canvas = document.createElement("canvas");
            let ctx = canvas.getContext("2d");
            ctx.save();
            switch (orientation) {
                case 6:
                    canvas.width = height;
                    canvas.height = width;
                    //90 graus
                    ctx.translate(height / 2, width / 2);
                    ctx.rotate((90 * Math.PI) / 180);
                    ctx.translate(-width / 2, -height / 2);
                    break;
                case 8:
                    canvas.height = width;
                    canvas.width = height;
                    //-90 graus
                    ctx.translate(height / 2, width / 2);
                    ctx.rotate((-90 * Math.PI) / 180);
                    ctx.translate(-width / 2, -height / 2);
                    break;
                case 3:
                    canvas.width = width;
                    canvas.height = height;
                    //180 graus
                    ctx.translate(width / 2, height / 2);
                    ctx.rotate((180 * Math.PI) / 180);
                    ctx.translate(-width / 2, -height / 2);
                    break;
                //备份(可能出现的其他情况)
                case 2:
                    canvas.width = width;
                    canvas.height = height;
                    // horizontal flip
                    ctx.translate(width, 0);
                    ctx.scale(-1, 1);
                    break;
    
                case 4:
                    canvas.width = width;
                    canvas.height = height;
                    // vertical flip
                    ctx.translate(0, height);
                    ctx.scale(1, -1);
                    break;
                case 5:
                    // vertical flip + 90 rotate right
                    canvas.height = width;
                    canvas.width = height;
                    ctx.rotate(0.5 * Math.PI);
                    ctx.scale(1, -1);
                    break;
                case 7:
                    // horizontal flip + 90 rotate right
                    canvas.height = width;
                    canvas.width = height;
                    ctx.rotate(0.5 * Math.PI);
                    ctx.translate(width, -height);
                    ctx.scale(-1, 1);
                    break;
                default:
                    canvas.width = width;
                    canvas.height = height;
            }
    
            ctx.drawImage(img, 0, 0, width, height);
            ctx.restore();
            let base64 = canvas.toDataURL();
            console.log('base',base64);
            document.getElementById('img').setAttribute('src',base64)
        });
    }
    img.src = objectURL
    
    },
    
    • exif-js-min.js
    /* eslint-disable */
    const Exif = {};
    
    Exif.getData = (img) => new Promise((reslove, reject) => {
      let obj = {};
      getImageData(img).then(data => {
        obj.arrayBuffer = data;
        obj.orientation = getOrientation(data);
        reslove(obj)
      }).catch(error => {
        reject(error)
      })
    })
    
    // 这里的获取exif要将图片转ArrayBuffer对象,这里假设获取了图片的baes64
    // 步骤一
    // base64转ArrayBuffer对象
    function getImageData(img) {
      let data = null;
      return new Promise((reslove, reject) => {
        if (img.src) {
          if (/^data\:/i.test(img.src)) { // Data URI
            data = base64ToArrayBuffer(img.src);
            reslove(data)
          } else if (/^blob\:/i.test(img.src)) { // Object URL
            var fileReader = new FileReader();
            fileReader.onload = function (e) {
              data = e.target.result;
              reslove(data)
            };
            objectURLToBlob(img.src, function (blob) {
              fileReader.readAsArrayBuffer(blob);
            });
          } else {
            var http = new XMLHttpRequest();
            http.onload = function () {
              if (this.status == 200 || this.status === 0) {
                data = http.response
                reslove(data)
              } else {
                throw "Could not load image";
              }
              http = null;
            };
            http.open("GET", img.src, true);
            http.responseType = "arraybuffer";
            http.send(null);
          }
        } else {
          reject('img error')
        }
      })
    }
    
    function objectURLToBlob(url, callback) {
      var http = new XMLHttpRequest();
      http.open("GET", url, true);
      http.responseType = "blob";
      http.onload = function (e) {
        if (this.status == 200 || this.status === 0) {
          callback(this.response);
        }
      };
      http.send();
    }
    
    
    
    function base64ToArrayBuffer(base64) {
      base64 = base64.replace(/^data\:([^\;]+)\;base64,/gmi, '');
      var binary = atob(base64);
      var len = binary.length;
      var buffer = new ArrayBuffer(len);
      var view = new Uint8Array(buffer);
      for (var i = 0; i < len; i++) {
        view[i] = binary.charCodeAt(i);
      }
      return buffer;
    }
    // 步骤二,Unicode码转字符串
    // ArrayBuffer对象 Unicode码转字符串
    function getStringFromCharCode(dataView, start, length) {
      var str = '';
      var i;
      for (i = start, length += start; i < length; i++) {
        str += String.fromCharCode(dataView.getUint8(i));
      }
      return str;
    }
    
    // 步骤三,获取jpg图片的exif的角度(在ios体现最明显)
    function getOrientation(arrayBuffer) {
      var dataView = new DataView(arrayBuffer);
      var length = dataView.byteLength;
      var orientation;
      var exifIDCode;
      var tiffOffset;
      var firstIFDOffset;
      var littleEndian;
      var endianness;
      var app1Start;
      var ifdStart;
      var offset;
      var i;
      // Only handle JPEG image (start by 0xFFD8)
      if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {
        offset = 2;
        while (offset < length) {
          if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {
            app1Start = offset;
            break;
          }
          offset++;
        }
      }
      if (app1Start) {
        exifIDCode = app1Start + 4;
        tiffOffset = app1Start + 10;
        if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {
          endianness = dataView.getUint16(tiffOffset);
          littleEndian = endianness === 0x4949;
    
          if (littleEndian || endianness === 0x4D4D /* bigEndian */) {
            if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {
              firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);
    
              if (firstIFDOffset >= 0x00000008) {
                ifdStart = tiffOffset + firstIFDOffset;
              }
            }
          }
        }
      }
      if (ifdStart) {
        length = dataView.getUint16(ifdStart, littleEndian);
    
        for (i = 0; i < length; i++) {
          offset = ifdStart + i * 12 + 2;
          if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {
    
            // 8 is the offset of the current tag's value
            offset += 8;
    
            // Get the original orientation value
            orientation = dataView.getUint16(offset, littleEndian);
    
            // Override the orientation with its default value for Safari (#120)
            // if (IS_SAFARI_OR_UIWEBVIEW) {
            //   dataView.setUint16(offset, 1, littleEndian);
            // }
            break;
          }
        }
      }
      return orientation;
    }
    
    export default Exif
    
    展开全文
  • 通过一张照片查对方位置

    千次阅读 2020-06-10 08:33:34
    一、利用条件 拍照没有关闭手机定位功能(原照片的EXIF...》》使用原数据编辑(MagicEXIF)查看该图片信息,可以看到经纬度 》》经纬度进行转换 http://www.gzhatu.com/du2dfm.html 》》经纬度定位到的信息 ...

    一、利用条件

    • 拍照没有关闭手机定位功能(原照片的EXIF中会保存拍照的经纬)

    二、操作

    》》这里我在QQ空间找到一张照片,并将照片原图下载下来(非原图上传照片的EXIF头中的GPS信息会抹掉)
    在这里插入图片描述
    》》使用原数据编辑器(MagicEXIF)查看该图片信息,可以看到经纬度
    在这里插入图片描述
    》》对经纬度进行转换
    http://www.gzhatu.com/du2dfm.html
    在这里插入图片描述
    》》经纬度定位到的信息(位置偏差在50m范围内,具体的位置取决与拍照时GPS信号强弱)
    在这里插入图片描述

    三、防范方法

    • 拍照时关闭定位信息
    展开全文
  • APK Helper是一个帮助高级玩家快速鉴定APK文件详细信息的小程序,这个apk信息查看器能够详细地获得安装包名、软件名称、APK证书、真实版本号、要求的手机版本、系统权限、以及证书和文件的MD5信息,保证你下载的是...
  • 二维码生成

    2011-12-29 12:45:57
    【应用信息】二维码是二维条形码的一种,可以将网址、文字、照片信息通过相应的编码算法编译成为一个方块形条码图案,手机用户可以通过摄像头和解码软件将相关信息重新解码并查看内容。 【应用特点】可以根据...
  • 软件特色 果备份,比 iTunes 更好用的数据备份软件 无需越狱,安全备份任何 iPhone,ipad 或 iPod touch设备 功能强大且安全便捷的iOS设备管理 更智能的备份 全面查看苹果设备详细的软硬件信息 支持
  • CamFi自带的WiFi功能(无需手机流量),不但可通过手机、平板、电脑等设备远程连接操作单反相机进行拍摄,而且还可实时传输相机拍摄的照片到iPad和电视等大屏设备进行查看和分享。 近日,卡菲公司(CamFi Limited)...

    珠海卡菲信息技术有限公司是一家专为数码单反相机打造无线传输控制器的公司。CamFi自带的WiFi功能(无需手机流量),不但可通过手机、平板、电脑等设备远程连接操作单反相机进行拍摄,而且还可实时传输相机拍摄的照片到iPad和电视等大屏设备进行查看和分享。 近日,卡菲公司(CamFi Limited)发布世界上首套无线单反相机控制器SDK,支持佳能和尼康的绝大部分单反相机。目前已应用在摄影、新闻、军事、医学、公安、科研、VR等多个行业领域。
    图片描述

    SDK 支持以下功能:
    1. 无线取景
    2. 调整相机拍摄参数,如光圈、快门、ISO
    3. 无线拍摄
    4. 下载照片缩略图
    5. 下载照片预览图(支持RAW)
    6. 下载照片原图(支持RAW)
    这套SDK基于REST协议,iOS,Android,Windows和Mac都可以使用。
    CamFi卡菲单反无线取景控制器视频介绍: http://v.qq.com/boke/page/w/0/w/w0159y7rh4w.html
    SDK产品简介:
    http://cam-fi.com/sdk/sdk_home.html

    展开全文
  • 物联通手机版7.514.rar

    2020-02-06 17:52:03
    优化:审核明细支持查看商品批次信息 优化:一般费用单、现金费用单,审核单据表体增加品牌字段 五、配送管理新增与优化 新增:仓库装车单,支持多张同一仓库的业务单据合并成一张拣货单,实现仓库...
  • 今天向手机里复制照片时,发现不识别手机了,具体表现是:设备管理中出现手机的型号,但是图标左下角有一个黄色的小叹号,表明设备没有正常工作,点开属性查看,发现是驱动安装出现了问题。于是我卸载了原来的驱动...
  • 用户可以在交友网上注册资料、上传照片等,同时也可以自由设定年龄、地区、身高等各种搜索条件,查看其他会员的资料和相片。遇到心仪的会员,用户可以向会员发送站内信件联系或者赠送礼品。网站即时通讯功能,在线...
  • 更能让您做到:不同电脑、平板电脑(iPad等)、智能手机(iPhone、Android)之间云同步,相互之间便利地查看您的个人知识库! Wiz以用户知识数据为核心,提供实用便捷的工具集;基于互联网,可在多台电脑和手机上...
  • 更能让您做到:不同电脑、平板电脑(iPad等)、智能手机(iPhone、Android)之间云同步,相互之间便利地查看您的个人知识库!   Wiz以用户知识数据为核心,提供实用便捷的工具集;基于互联网,可在多台电脑和手机...
  • 个人会员可以在找工作内搜索职位,注册登后可以创建和编辑简历,投递简历,查看工作机会,编辑基本信息等。 企业会员可以搜索简历,注册登陆后可以发布职位,查看收到的简历,发送邀请面试,完善公司环境图片,以及...
  • 完善了门禁界面,采用自动化人脸采集,界面更加洁净,当有人脸出现时,能够识别并在弹窗中显示采集到的照片和验证信息,弹窗固定时间后自动消失,进行下一次比对,技术就是多个计时和定时器联动使用。 最新版本图,...
  • 现在手机及相机都会在拍照时使用定位功能保存位置信息。Ashampoo Photo Commander 16 可以添加和编辑这些数据,用来对照片排序。程序可以将这些数据转换成每张照片的拍摄国家、城市、街道信息!待在地图上回顾您的...
  • 语言:Bahasa Indonesia,English,Tiếng Việt,español Tiktokfull是在线上最好的tiktok视频下载之一,可下载不带水印的TikTok视频 TiktokFull是最简单的Video ...-使用内置相册离线查看照片。 -支持复制链接,共
  • GoBarberApplication-源码

    2021-05-13 09:17:39
    在该应用程序的网站上,您可以注册一个帐户,如果忘记密码,会收到一封电子邮件,查看个人资料,更改照片,以及其他个人资料信息手机上,您可以看到客户与您安排的约会,也可以与其他发型师安排约会 一些技术 ...
  • 平凡考试系统V2018

    2017-11-20 12:39:20
    +增加 查看试卷作答明细时提供考场抓拍照片查看功能。 +增加 成绩归档时可以连同考场抓拍的照片一起归档。 +增加 成绩单打印时提供考场抓拍照片查看功能。 +增加 生成试卷时可设置提前交卷的时间值,以防考生...
  • 黑莓BBM 2.6.0.30.apk

    2015-01-29 20:08:30
    有关详细信息,请查看完整描述。 消息撤回: 撤回消息指的是从 BBM 聊天中删除消息。有关详细信息,请查看完整描述。 更快速的贴纸选择:全新的选择,更快速地在 BBM 聊天中添加贴纸 高清图片传输:在 BBM 中...
  • 5.16 轻松查看手机的相关信息 219 5.17 查看sim卡的信详细息 223 5.18 按键移动图片——方向键的应用 226 5.19 查看正在运行的程序 229 5.20 手机屏幕更改时信息的捕捉和提醒 232 5.21 本章小结 235 第6...
  • 1、在麦库记录旅游见闻、攻略记录,也可以拍照记录到麦库,随时都可以在手机查看。 2、使用网页剪辑自动识别正文,智能提取,一边浏览精彩网页,一边保存喜欢的内容。 3、用麦库保存会议记录,用语音记录会议...
  • 员工目录是一个应用程序,雇主/经理可以在其中查看不敏感的员工信息表,包括: 名称(名字和姓氏) 照片(72x72) 出生日期 地址 电子邮件 手机号码 附加的功能: 按姓名搜索员工 按州/地区和/或年龄段筛选员工 ...
  • 软件名称:光影魔术手 nEOiMAGING 简体中文版 0.28 软件版本:0.28版 ...√ 可以从相机、读卡手机导入照片 √ 可以把照片自动上传到百度相册、新浪相册、又拍相册、Flickr、天涯等多家相册网站 √ 绿色软件
  • 主要功能有文件管理,文件加密,ZIP压缩,网络浏览,注册表编辑器,内建图片查看器。填补PocketPC上自带“资源管理器”的诸多不足。 软件特点: 1.支持文件加密,可以使用内置的RC2(40bit)或DES(56bit)加密算法,并...
  • 软件支持iPhone, iPod Touch 和 ipad文件浏览器,无须越狱和任何破解,可以直接使用,既可以在手机与电脑之间同步传递数据,使你轻松上传电影、音乐、电子书、桌面、照片以及应用程序。还能够把你的iPhone变成一个...
  • 场地-场地清单场地详细信息-照片,地址,展览清单 笔记 Singleton DCMDatabase对象。 可以随时重置核心数据堆栈; 客户端视图控制应准备接收通知。 执照 版权所有(c)2012-2018 Upright Citizens Brigade LLC ...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

手机照片信息查看器