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,一经查实,立即删除!

相关文章

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

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

python CSV库的基本使用

一、简介 CSV文件和TXT文件一样,一种纯文本文件。CSV翻译过来就是 “逗号分割的值” 的首字母缩写。 逗号分割的值意思就是用逗号把不同的值进行分割。 1.CSV文件文件的第一行相当于Excel表格的列名。 2.CSV文件可以通过记事本打开,也可以通过Excel软件…

了解 nextTick

一. 什么是 nextTick 简单的说,nextTick 方法是在 Vue.js 中常见的一种异步更新 DOM 的机制。它的原理是利用 JavaScript 的事件循环机制以及浏览器的渲染流程来实现延迟执行 DOM 更新操作。 它的出现主要是为了解决 Vue 的异步更新导致的 DOM 更新后的操作问题。…

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

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

dplayer播放hls格式视频并自动开始播放

监控视频流为hls格式,需要打开或刷新页面自动开始播放,需要安装dplayer和hls.js插件,插件直接npm装就行,上代码 import DPlayer from dplayer import Hls from hls.js //jquery是用来注册点击事件,实现自动开始播放 i…

一个不容忽视的警告WARNING:pip install --upgrade pip

2024年第一篇文章记录下一个很重要的知识点:pip提示升级时,尽量升级。 pip升级的好处: 1、安装速度加快,寻找依赖包的速度更快。 2、解决部分包安装失败,安装不上,不兼容的问题。 所以,如果…

【OpenCV】在MacOS上使用OpenCvSharp

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

Windows异常-解决118及WiFi图标消失问题

注册表修复: 注册表修复 Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog] "ServiceDll"hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\ 00,74,00,25,00,5c,00,53,00,79,00,…

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…

C 练习实例13 - 水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为1531的三次方+5的三次方+3的三次方…

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

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

【React系列】非父子组件通信—Context.Provider共享数据、events库事件总线通信

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. Context使用 1.1. Context应用场景 非父子组件数据的共享: 在开发中,比较常见的数据传…

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

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

RBAC基于角色的访问控制

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

Python 设置文件资源锁定

功能背景 使用线程操作或者多个程序同时对同一个excel文件进行读写操作,不可避免的会操作冲突的问题,有没有一种方法就是可以不冲突,而是等待上一个程序使用完成后再对文件进行操作,就是等待一个完成再接着下一个? 实现…

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

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

深度掌握GitHub Copilot:提高编码效率的终极指南

引言: GitHub Copilot,作为一款由OpenAI和GitHub合作打造的智能代码助手,正在迅速改变开发者的编码体验。本文将深入研究GitHub Copilot,从安装和基础用法到高级应用和实用技巧,助您充分发挥这一工具在提高编码效率和…

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可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…

springboot中使用mongodb进行简单的查询

文章目录 引言依赖配置文件代码编写1、实体类2、使用repository查询3、使用MongoTemplate查询 引言 应用程序中,通常会使用两种数据库,一种是关系型数据库如mysql等,另一种则是非关系型数据库例如mongodb,今天我们就来讲一讲如何…