H5 - - - - - 获取图片exif相关信息

1. EXIF是什么

【可交换图像文件格式】:(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。

2. EXIF 相关标识

{
ApertureValue: "2.2750071245369052",//光圈值
Artist:"作者",
BrightnessValue: "8.631048387096774",//明度值
ColorSpace: "1",//色彩空间
ComponentsConfiguration: "YCbCr",//光栅(似乎是和"RGB"类似的东西)
DateTime: "2015:05:27 08:30:38",//拍摄时间
DateTimeDigitized: "2015:05:27 08:30:38",//拍摄时间(电子)
DateTimeOriginal: "2015:05:27 08:30:38",//拍摄时间(原始)
ExifIFDPointer: "208",//
ExifVersion: "0221",//exif版本
ExposureBias: "0",//曝光偏差
ExposureMode: "0",//曝光模式
ExposureProgram: "Normal program",//曝光程序
ExposureTime: "0.0024271844660194173",//曝光时间
FNumber: "2.2",//光圈(F值)
Flash: "Flash did not fire, compulsory flash mode",//记录闪光灯状态
FlashpixVersion: "0100",//FlashPix版本
FocalLength: "4.15",//镜头焦距
FocalLengthIn35mmFilm: "29",//35毫米胶片焦距
GPSAltitude: "33.97305389221557",//GPS海拔,米
GPSAltitudeRef: "0",//海拔参照:上面的海拔在海面上,则为0,如果是海面下,则为1
GPSDateStamp: "2015:05:27",//GPS日期(原子钟)
GPSDestBearing: "273.2704918032787",//目标方位
GPSDestBearingRef: "T",//目标方位参照
GPSImgDirection: "93.27047619047619",//图像方位
GPSImgDirectionRef: "T",//图像方位参照
GPSInfoIFDPointer: "1658",//
GPSLatitude: "22,35,6.07",//纬度
GPSLatitudeRef: "N",//纬度参考
GPSLongitude: "113,55,57.42",//经度
GPSLongitudeRef: "E",//经度参考
GPSSpeed: "0",//GPS接收器速度
GPSSpeedRef: "K",//GPS接收器速度单位
GPSTimeStamp: "0,30,37.88",//GPS时间(原子钟)
ImageDescription:'',//图像描述
LensMake: "Apple",//    镜头生产商
LensModel: "iPhone 6 Plus back camera 4.15mm f/2.2",//镜头型号
LensSpecification: "4.15,4.15,2.2,2.2",//镜头规格
Make: "Apple",//相机生产厂家
MakerNote: "",//制造商的内部数据. 一些制造商如 Olympus/Nikon/Sanyo 等在这个区域中使用IFD 格式的数据.
MeteringMode: "Pattern",//曝光的测光方法. '0' 表示未知, '1' 为平均测光, '2' 为中央重点测光, '3' 是点测光, '4' 是多点测光, '5' 是多区域测光, '6' 部分测光, '255' 则是其他.
Model: "iPhone 6 Plus",//相机型号
Orientation: "right-top",//方向
PhotographicSensitivity: "32",//感光度
PixelXDimension: "3264",//有效图像宽
PixelYDimension: "2448",//有效图像高
ResolutionUnit: "2",//XResolution(0x011a)/YResolution(0x011b)的单位. '1' 表示没有单位, '2' 意味着英寸, '3' 表示厘米. 缺省值是 '2'(英寸).
SceneCaptureType: "Standard",//场景拍摄类型
SceneType: "Directly photographed",//表示拍摄场景的类型. 值 '0x01' 表示图像是通过相机直接拍摄出来的.(与上面好像是一样的描述,因为两个是不同文档里摘抄过来的)
SensingMethod: "One-chip color area sensor",//表示图像传感器单元的类型. '2' 意味着这是一个芯片颜色区域传感器, 几乎所有的数字相机都 使用这个类型.
ShutterSpeedValue: "8.686015831134565",//用APEX表示出的快门速度. 为了转换成原始的 'Shutter Speed'; 则先要计算2的ShutterSpeedValue次幂, 然后求倒数. 例如, 如果 ShutterSpeedValue 是 '4', 快门速度则是1/(24)=1/16秒.
Software: "8.1.2",//显示固件的版本号(数字相机的内部控制软件).
SubsecTime:"081",//同下
SubSecTimeDigitized: "081",//一些数字相机每秒能拍摄 2~30 张照片, 但是DateTime/DateTimeOriginal/DateTimeDigitized 标签只能记录到秒单位的时间. SubsecTime 标签就是用来记录秒后面的数据(微秒).例如, DateTimeOriginal = "1996:09:01 09:15:30", SubSecTimeOriginal = "130", 合并起来的原始的拍摄 时间就是 "1996:09:01 09:15:30.130"
SubSecTimeOriginal: "081",//同上
SubjectArea: "1631,1223,1795,1077",//主体区域
WhiteBalance: "Auto white balance",//白平衡"AUTO", "WHITE PRESET" etc
XResolution: "72",//水平方向分辨率
YCbCrPositioning: "1",//当图像的格式是 YCbCr 并且使用 '子采样/Subsampling'(色度数据的剪切值, 所有的数字相机都使用), 定义了subsampling 像素阵列的色度采样点. '1'表示像素阵列的中心, '2' 表示基准点.
YResolution: "72"//垂直方向分辨率
}

3. 前端如何获取exif信息

推荐使用【exif-js插件】。

  • 插件安装
    npm install exif-js --save
  • 页面使用
import EXIF from 'exif-js';function uploadFile(){let file = document.getElementById("upload").files[0];EXIF.getData(file, function () {console.log("getData", this);// 这里面可以看到值,想要什么直接获取即可。console.log("所有exif的信息", EXIF.getAllTags(this));});
}

效果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第二十四天 | 回溯算法

理论基础 代码随想录原文 什么是回溯法 回溯也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。 回溯法的效率 虽然回溯法很难,不好理解,但是回溯法并不是什么高效的算法。因为回溯的本…

SCA面面观 | 企业该如何选择组件检测工具?

一般来说,一个软件应用程序可以被分解成若干部分,为软件程序解耦,以减少整个应用程序的复杂性,这些部分就是软件组件。以一种标准化的方式相互作用,使得组件可以像机器的“零部件”一样被换入或换出,因组件…

【OpenCV】在MacOS上使用OpenCvSharp

前言 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。OpenCvSharp是一个Op…

ubuntu 22 virt-manger(kvm)安装winxp

安装 、启动 virt-manager sudo apt install virt-manager sudo systemctl start libvirtdsudo virt-manager安装windowsXP 安装过程截图如下 要点1 启用 “包括寿终正寝的操作系统” win_xp.iso 安装过程 : 从winXp.iso启动, 执行完自己重启从硬盘重启&#xff0c…

太牛了!微信批量自动加好友你还不知道吗?

你还在一个一个地输入号码或微信号,再手动进行搜索添加好友吗?这样不仅费时费力,还可能会出现错误或是漏加的情况。 今天给大家分享一个支持多个微信号自动批量添加好友的宝藏工具,解放你的双手,帮你节省大量的时间和…

【SpringCloud】设计原则之数据一致性与设计模式

一、设计原则之数据一致性 数据一致性分以下几种情况。 强一致性 当更新操作完成之后,任何多个后续进程或线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论&#…

RBAC基于角色的访问控制

一 什么是RBAC 概念 RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的&#…

SD杂症:TemporalKit的key关键帧无图片问题

本地安装好temporalkit后,进行Ebsynth预处理后,居然发现key文件夹里,没有一张图片 搜遍百度,搜到了原因,也搜到了解决方案 但是。。。。这个解决方案我觉得很不cool,像个打补丁的老师傅,缝缝补补…

Linux第16步_安装NFS服务

NFS(Network File System)是一种在网络上实现的分布式文件系统,它允许不同的操作系统和设备之间共享文件和资源。 在创建的linux目录下,再创建一个“nfs“文件夹,用来供nfs服务器使用,便于”我们的开发板“…

GeoServe本地部署结合内网穿透实现远程访问Web管理界面

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实…

【Python案例实战】水质安全分析及建模预测

一、引言 1.水资源的重要性 水是生命之源,是人类生存和发展的基础。它是生态系统中不可或缺的组成部分,对于维系地球上的生命、农业、工业、城市发展等方面都具有至关重要的作用。 2.水质安全与人类健康的关系 水质安全直接关系到人类的健康和生存。水中的污染物和有害物…

苹果Mac电脑PDF优化压缩推荐 Recompress中文 for Mac

Recompress采用了先进的压缩技术,能够智能地分析PDF文件并确定哪些内容可以进一步压缩以节省存储空间。中文界面:Recompress Mac版提供了符合国人浏览习惯的中文界面,使得用户在使用时更加方便。批量压缩:Recompress支持批量压缩P…

海外直邮革命:跨境电商的全球化销售策略

在数字化时代,跨境电商正经历着一场革命,而海外直邮成为这场变革的引领者。全球范围内,越来越多的企业通过直邮方式销售商品,打破了地域限制,实现了商品的全球化流通。本文将深入探讨海外直邮的崛起,以及跨…

文件管理方法和技巧,清除文件名中的大写字母

如何将多个文件名称中的大写字母都清除掉,有没有批量操作的方法?这个还真的有,今天小编就给各位朋友介绍一款很好用的软件——文件批量改名高手,助大伙一键清除多个文件名称中的所有大写字母。 所需工具: 一个【文件…

RocketMQ5-01云原生和AI演变下的架构重构

2022年9月22日,迎来 RocketMQ5 的发版,距离 2017 发布的 4.X 时代,RocketMQ 迎来 5.X 时代。 RocketMQ 4.X 时代已经使众多开发者和项目受益,但是随着关注度、使用量逐步上升以及云原生时代的到来,也对其自身架构带来…

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start 初步判断很有可能是TeamViewer的某个启动项或者签名书没有, 导致在预加载的时候无法加载TeamViewer。 然后出现这个情况有一个前提,那就是你用了第三…

神经网络框架的基本设计

一、神经网络框架设计的基本流程 确定网络结构、激活函数、损失函数、优化算法,模型的训练与验证,模型的评估和优化,模型的部署。 二、网络结构与激活函数 1、网络架构 这里我们使用的是多层感知机模型MLP(multilayer prrceptron)&#x…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友:新入职一家企业,发现这家企业依旧是从金蝶ERP中导出数据做分析,这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性,说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数? Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例:创建一个RESTful服务 总结 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家…