分类分类
大小:42.1 MB 更新:2024/06/07
类别:其他软件系统:WinAll
Exifr 是一个高效便捷且简单专业的JavaScript EXIF读取库,可帮助用户解析所有MB数据,使用这款软件用户无需读取整个文件并解析MB数据,它可以有根据的读取通常位于元数据所在位置的文件的一小部分,每种平台文件格式和数据类型的处理方法都不同,以确保最佳性能;Exifr支持查找元数据功能,可快速搜索识别由段或嵌套框组成的文件结构,帮助用户快速精准的获取指定的源数据文件,该软件支持读取和处理各种常见的文件,满足用户所有操作需求,有需要的朋友可以下载使用。
提取所有ICC标签
TIFF字典包含不常用的、非标准的和专有的TIFF/EXIF标签(只在全捆中)。
处理UCS2格式的字符串(XPTitle标签),而不是将其作为一个缓冲区。
规范化字符串
将日期恢复为日期类实例
将GPS坐标从DMS格式转换为DD格式
最快的EXIF库:每个文件+ -1ms
任何输入:缓冲区,URL,标记等
文件:.jpg,.tif,.png,.heic,.avif,.iiq
细分:TIFF(EXIF,GPS等),XMP,ICC,IPTC,JFIF,IHDR
仅读取前几个字节
跳过解析不需要的标签
同构:Browser&Node.js
没有依赖关系
提取缩略图
抢救损坏的文件
模块化的
可定制的标签词典
捆绑为UMD / CJS或ESM
经过测试和基准测试
甚至支持 IE11 IE10
安装
npm install exifr
Exifr包含三个预先构建的捆绑包。这是一个好主意,开始与发展full,然后缩减到lite,mini或者更好的是,建立自己的周围模块化内核。
浏览器:lite和mini推荐使用,因为功能和文件大小之间存在平衡。UMD格式将库附加到全局window.exifr对象。
IE和旧版浏览器:内部 legacy版本与polyfill捆绑在一起。了解更多。
捆绑包和格式
已满-包含所有内容。打算在Node.js中使用。
精简版-读取JPEG和HEIC。解析TIFF / EXIF和XMP。
迷你-精简了基础知识。从JPEG解析最有用的TIFF / EXIF。没有标签字典。
当然,您可以full在浏览器中使用该版本,也可以在Node.js中使用任何其他构建。
ESM-在现代浏览器和Node.js中使用的现代语法。
使用import语法。
UMD-浏览器和Node.js的通用格式。
支持CJS require('exifr'),AMD / RequireJS和global window.exifr。
旧版UMD-适用于较旧的浏览器(最高IE10)。
与polyfills和shimms捆绑在一起,但Promisepolyfill除外。在这里了解更多。
详细比较(单击以展开)
ESM,.js .mjs .cjs扩展名,“ main”,“ module”,“ type”:“ module”
TL; DR:所有捆绑包均提供两个相同的副本。.mjs和.jsESM。.cjs并.js为UMD。选择一个与您的工具或网络服务器一起使用的工具。
(单击以展开以获取更多信息)
命名出口与默认出口
Exifr导出命名导出和默认导出-包含所有命名导出的对象。
您可以使用import * as exifr from 'exifr'以及import exifr from 'exifr'(推荐)。
例子
仅提取某些标签
提取缩略图
网络工作者
浏览器中的UMD
浏览器中的ESM
演示版
操场
examples / thumbnail.html,代码
提取并显示嵌入式缩略图。
examples / orientation.html,代码
提取方向并使用canvas或css旋转图像。
examples / depth-map-extraction.html,代码
提取并显示深度图。
基准/gps-dnd.html,对多张照片进行拖放拖放编码
,并确定提取GPS所需的时间和RAM。然后将它们标记在地图上。
examples / worker.html,代码
在WebWorker中解析文件。
examples / legacy.html,代码
在IE10 / IE11中访问,
基准/格式-reading.html,代码
比较各种输入类型的读取速度。
在example /文件夹中还有更多
警告:一些现代的浏览器会自动旋转元素background-image和/或传递给它们的数据,而无需更改EXIF。这种行为在iOs 13.4 Safari和更高版本的Safari上特别古怪(尽管不是在macOS上)。如果不处理此怪癖,可能会导致图像旋转过度。请参阅examples / orientation.html了解更多信息。
thumbnail(file)
返回值: Promise
从照片中提取嵌入的缩略图,返回Uint8Array。
仅解析必要的EXIF即可找到缩略图的偏移量。
请查看examples / thumbnail.html和examples / thumbnail.js以了解更多信息。
thumbnailUrl(file)
返回:Promise
仅浏览器
导出包裹在对象URL中的缩略图。如果不再需要该URL,则必须将其撤消。
Exifr 班级
前面提到的函数是内部的包装器:
实例化new Exifr(options)类
调用.read(file)以加载文件
呼叫.parse()或.extractThumbnail()获取输出
您可以实例化Exif自己以解析元数据并同时高效地提取缩略图。在Node.js中,.file.close()如果以分块模式读取文件,则也有必要关闭文件。
file 争论
string
文件路径
URL,对象URL
Base64或Base64 URL
Buffer
ArrayBuffer
Uint8Array
DataView
Blob, File元素
options 争论
array 要解析的标签,其快捷方式 options.pick
true解析所有段和块的快捷方式
object 具有精细设置
所有其他和未定义的属性均从默认值继承:
标签过滤器
Exifr可以避免读取某些标签,而不是像其他exif库一样读取但不将其包括在输出中。例如,EXIF块中的MakerNote标签通常很大-数十KB。如果不需要,读取这样的标签会浪费时间。
提示:使用数字标记代码比使用字符串名称甚至更快,因为exifr不必在字典中查找字符串。
options.pick
类型: Array
将要解析的唯一标签的数组。
在词典中查找指定的标签。启用它们各自的块以进行解析,禁用所有其他块。提取所有请求的标签后,解析结束。
options.skip
类型:Array
默认值:['MakerNote', 'UserComments']
不会解析的标签数组。
默认情况下,将跳过MakerNote和UserComment标签。但这是在其他地方配置的。
段和块
EXIF成为所有图像元数据的代名词,但实际上只是TIFF段中许多块之一。而且,细分市场不仅仅是TIFF。
段(JPEG APP段,HEIC框,PNG块)
Jpeg将各种格式的数据存储在APP段中。Heic和Tiff文件格式使用不同的结构或命名约定,但是思想是相同的,因此我们将TIFF,XMP,IPTC,ICC和JFIF称为段。
options.tiff类型bool|object|Array默认值:true
TIFF APP1段-基本TIFF / EXIF标签,由以下块组成:IFD0(图像),IFD1(缩略图),EXIF,GPS,互操作性
options.jfif类型bool默认值:false
JFIF APP0段-其他信息
options.xmp类型bool默认值:false
XMP APP1段-其他XML数据
options.iptc类型bool默认值:false
IPTC APP13段-标题和版权
options.icc类型bool默认值:false
ICC APP2细分-颜色配置文件
options.ihdr类型bool默认值:(true仅用于PNG)
PNG标头块-基本文件信息
TIFF IFD块
TIFF段由各种IFD(图像文件目录)aka块组成。
options.ifd0(别名options.image),键入bool|object|Array默认值:true
IFD0-有关图像的基本信息
options.ifd1(别名options.thumbnail)类型bool|object|Array默认值:false
IFD1-有关嵌入式缩略图的信息
options.exif键入bool|object|Array默认值:true
EXIF SubIFD-有关照片的详细信息
options.gps类型bool|object|Array默认值:true
GPS SubIFD-GPS坐标
options.interop类型bool|object|Array默认值:false
Interop SubIFD-互操作性信息
著名的TIFF标签
来自EXIF块的值得注意的大标记,默认情况下不会解析,但是可以根据需要启用。
options.makerNote类型:bool默认值:false
0x927C MakerNote标签
options.userComment类型:bool默认值:false
0x9286 UserComment标签
XMP
提取的XMP标签按名称空间分组。每个ns是中的单独对象output。例如output.xmlns,output.GPano,output.crs等...
对于XMP Extended,请参见 options.multiSegment
Exifr包含用于分析XMP数据的极简主义的XML解析器。它可能不是100%符合规范,因为XMP是基于XML的,不能将1:1转换为JSON。输出是有根据的,可能会更改或简化数据结构。如果XMP解析器不适合您,则可以通过将其设置options.xmp.parse为来禁用它false。然后,原始的XMP字符串将在提供output.xmp。
注意事项和XML到JSON的映射
同时具有属性和子值的标签合并为对象。
具有单个项目的数组(RDF容器)是未包装的。使用单个项目代替数组。
如果options.mergeOutput:false:tiff名称空间()的标签合并到中output.ifd0。同样,exifns合并为output.exif。
解析为:
options.multiSegment
类型:bool
默认值:false
不仅可以查找ICC或XMP(XMP扩展)的单个段。
在极少数情况下,照片可能包含附加的层,嵌入的图像或元数据,而这些内容不适合单个64kB(JPEG)段。
副作用:禁用分块读取。必须读取整个文件才能找到所有段。
什么时候有用:
带有左右眼组合的VR照片(XMP Extended)
包含深度图的“人像模式”照片(XMP扩展)
具有自定义ICC颜色配置文件的照片
子选项:
options.xmp.multiSegment
options.icc.multiSegment
捷径
options.tiff 用作配置所有TIFF块的快捷方式:
options.tiff = true启用所有TIFF块(将它们设置为true)。
options.tiff = false禁用所有TIFF块(将它们设置为false),但明确将其设置为true中的除外options。
options.tiff = {...} 将相同的子选项应用于所有启用的TIFF块。
options.tiff = false 可以与任何其他块配对以禁用除所述块之外的所有其他块。
每个TIFF块和整个tiff段也可以使用object或配置array,就像options参数一样。
object-自定义选项中启用-过滤器(pick,skip)和格式化(translateKeys,translateValues,reviveValues)
array-已启用,但仅从此数组中选择标签
TIFF块自动从继承options.tiff,然后从继承options。
块状阅读器
options.chunked
类型:bool
默认值:true
Exifr只能读取几个块,而不是整个文件。它速度更快,可节省内存和不必要的磁盘读取或网络获取。适用于复杂的文件结构-.tif文件可能指向散布在整个文件中的元数据。
工作原理:firstChunkSize读取第一个小块(的),以确定文件是否根本包含任何元数据。如果是这样,则chunkSize继续读取(of的)大块,直到找到所有请求的段或直到chunkLimit到达为止。
支持的输入:块仅对Blob,元素,stringURL,磁盘路径或base64有效。这些输入尚未处理或读入内存。每种输入格式都在单独的文件读取器类中实现。在此处了解有关文件阅读器和模块化的更多信息。
如果您使用URL作为输入:UrlFetcher从Web服务器获取块(在中实现)使用HTTP Range Requests。如果您的服务器不支持范围,配置不正确或获取的文件小于第一个块大小,则范围请求可能会失败。{chunked: false}如有疑问,请测试您的Web服务器或禁用分块阅读器。
options.firstChunkSize
类型:number
默认值:512节点中的字节数/65536浏览器中的(64 KB)
探测文件中是否存在exif或元数据痕迹的第一个块的大小(以字节为单位)。
在浏览器中,通常最好只读取一个较大的块,以希望它包含整个EXIF(而不只是开头),而不是加载多个后续块。而在Node.js中,最好读取尽可能少的数据,并且fs.read()不会导致速度降低。
options.chunkSize
类型:number
默认值:65536字节(64 KB)
在第一个块之后可以读取的后续块的大小。
options.chunkLimit
类型:number
默认值:5
exifr在其中搜索数据段和数据块时允许读取的最大后续块数。即故障安全机制,如果文件不包含中要求的所有段或块,则会阻止读取整个文件options。
如果文件中出现多段段并且options.multiSegment允许读取所有段,则绕过此限制。
如果在N个块(64 * 5 = 320KB)中找不到exif,则该文件可能不在文件中,因此不再值得阅读。
输出格式
options.mergeOutput
类型:bool
默认值:true
将所有已解析的段和块合并到一个对象中。
警告:mergeOutput: false不能与translateKeys: false或同时解析ifd0(图像)和ifd1(缩略图)一起使用。标记键是数字的,有时是相同的,并且可能会发生冲突。
options.sanitize
类型:bool
默认值:true
从输出中清除不必要的,未转换的或内部的标记(IFD指针)。
options.silentErrors
类型:bool
默认值:true
错误消息存储在output.errors而不是作为Error实例抛出,并导致承诺被拒绝。
静默失败会启用读取损坏的文件的功能。但是仅捕获与文件结构相关的错误。
options.translateKeys
类型:bool
默认值:true
将标记键从数字代码转换为易于理解的字符串名称。即使用Model代替0x0110。大多数键是数字。要访问Model标签,请使用output.ifd0[0x0110]或output.ifd0[272] 了解有关字典的更多信息。
警告:translateKeys: false请勿与一起使用mergeOutput: false。键可能会冲突,因为ICC,IPTC和TIFF段使用从0开始的数字键。
options.translateValues
类型:bool
默认值:true
将标记值从原始枚举转换为可理解的字符串。了解有关字典的更多信息。
options.reviveValues
类型:bool
默认值:true
将日期从字符串转换为Date实例,并将其他一些标记修改为更易读的格式。了解有关字典的更多信息。
进阶API
给高级用户的提示。除非您对定制和捆绑程序有所了解,否则无需进一步阅读。
模块化,Pugin API,配置自定义捆绑
翻译词典,定制
与Webpack,宗地,汇总,盖茨比等配合使用...
表现
改善性能的提示
这里有一些提示,用于在处理大量文件时需要从exifr中挤出额外的速度。单击以展开。
使用options.pick,如果你只需要某些标签
options.ifd0如果不需要数据,请禁用
使用exifr.gps(),如果你只需要GPS
缓存options对象
基准测试
自己尝试使用Benchmark / chunked-vs-whole.js进行基准测试
使用+ -4MB图片(最高质量的Google Pixel照片。在带有SSD的中档双核i5机器上进行测试)得到的观察结果。
节点:解析后fs.readFile= 0.3ms
节点:按块读取和解析= 0.5ms
浏览器:处理时间ArrayBuffer= 3毫秒
浏览器:处理时间Blob= 7毫秒
浏览器:对象URL = 3毫秒
拖放100张图像的画廊并提取GPS数据大约需要65毫秒。
手机的速度要慢4倍左右。每张照片通常4-30毫秒。
确保访问exifr游乐场或Benchmark / gps-dnd.html,放入您的照片并观看解析的计时器。
有关完整的变更日志,请访问CHANGELOG.md。
显着变化
7.0.0 string网址作为file参数现在接受的Node.js(UrlFetcher用途填充工具fetch()中的Node.js)。但仅限full捆绑销售。
XMP解析中的重大更改。仅会影响带有list和nested的晦涩案例rdf:Description,但仍会破坏更改。
6.3.0 AVIF支持。
6.0.0和6.2.0 PNG支持。
4.3.0 Package.json"main"现在指向UMD捆绑包,以获得更好的兼容性。
4.1.0开始将垫片和填料与模型捆绑在一起legacy。支持IE10。
4.0.0添加了XMP分析器和XMP扩展支持。
3.0.0主要重写,添加了ICC解析器,HEIC文件支持,IE11反向兼容,重新实现了分块阅读器。
CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情WordPress 其他软件6.7 MB4.1 英文版
详情Discuz论坛 其他软件4.05 MB官方版
详情Guns后台管理系统 其他软件12.5 MBv7.0.3 官方版
详情狂雨小说cms 其他软件7.8 MBv1.3.2 官方版
详情Slidev(开发幻灯片展示) 其他软件8.52 MBv0.10.2 官方版
详情魔众短链接系统 其他软件27.5 MBv2.0.0 官方版
详情易语言资源网源码下载工具 其他软件1.51 MBv1.0 免费版
详情W5 SOAR(自动化响应平台) 其他软件6.8 MBv0.4 官方版
详情魔众文档管理系统 其他软件28.8 MBv3.0.0 官方版
详情Milvus(矢量数据库) 其他软件6.0 MBv1.1.0 官方版
详情FlatBuffers(序列化库) 其他软件1.95 MBv2.0.0 官方版
详情Wendasns(问答社区系统) 其他软件7.8 MBv1.1.5 官方版
详情DM企业建站系统 其他软件14.0 MBv2021.5a 官方版
详情Ember.js(JavaScript框架) 其他软件1.66 MBv3.27.0 官方版
详情Exifr(EXIF读取库) 其他软件42.1 MBv7.0.0 官方版
详情RavenDB数据库 其他软件64.5 MBv5.1.7 官方版
详情iWebShop(开源商城系统) 其他软件11.5 MBv5.9.210101 官方版
详情OElove(婚恋交友系统) 其他软件28.7 MBv8.1 官方版
详情点击查看更多
ThinkSNS 其他软件20 MB4.6.1 免费版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情vqqq.com带20000数据库的笑话程序 其他软件300 KB2.0 官方版
详情EXE文件加口令源代码 其他软件799 KB3.0 官方版
详情PPTV网络电视系统 其他软件1.27 MB4.0.1.0 官方版
详情建站专家网站建设系统 其他软件20.02 MB1.0.4.1819 官方版
详情Turbo C 2.0库函数速查 其他软件71 KB1.0 官方版
详情中国联通SGIP1.2短消息网关客户端程序 其他软件54 KB1.37 官方版
详情伤感文学CMS文章发布系统 其他软件4.11 MB2.0 官方版
详情娱乐先锋论坛 其他软件1.31 MB5.3 官方版
详情笔试考试源代码 其他软件1.17 MB1.0.0 官方版
详情Deluge For Linux 其他软件2.79 MB1.0.0 官方版
详情幻影留言版(ASP多用户版) 其他软件567 KB5.30 官方版
详情GeniusBBS 其他软件475 KB1.1 官方版
详情上机考试源代码 其他软件1.01 MB1.0.0 官方版
详情vqqq.com在线网页编辑asp源码 其他软件22 KB1.0.0 官方版
详情CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情狐狗网页源代码显示器 其他软件434 KBBuild1214 官方版
详情农业企业网站模板中英繁企业网站管理系统源码 其他软件2.18 MB2010 官方版
详情vqqq.com多用户ip统计asp源码 其他软件134 KB1.0.0 官方版
详情点击查看更多
狂暴捕鱼官网有330.3版本官方 休闲益智61.5MBv7.2.0
详情老式水果机投币游戏机 休闲益智0MBv1.0
详情开元棋脾595cc 休闲益智61.5MBv7.2.0
详情ky棋牌网站大全98 休闲益智61.5MBv7.2.0
详情王道棋牌官网最新版 休闲益智61.5MBv7.2.0
详情心悦吉林麻将完整版 休闲益智0MBv1.0
详情欢乐拼三张单机版2025 休闲益智61.5MBv7.2.0
详情彩民之家44666 生活服务68.2MBv1.7.1
详情牛牛下载金币版苹果 休闲益智61.5MBv7.2.0
详情开元棋盘财神捕鱼官网版下载 休闲益智54.7MBv7.2.0
详情彩虹多多彩票正版 生活服务33.2MBv9.9.9
详情狂暴捕鱼官网504.1 休闲益智61.5MBv7.2.0
详情777水果机免费单机版 休闲益智0MBv1.0
详情彩虹多多极速版 生活服务33.2MBv9.9.9
详情老式水果机下载手机版 休闲益智0MBv1.0
详情琼星海南麻将官方下载安装2024 休闲益智61.5MBv7.2.0
详情森林舞会飞禽走兽 休闲益智0MBv1.0
详情天天炸翻天单机版 休闲益智61.5MBv7.2.0
详情震东济南棋牌官方网站安卓版 休闲益智61.5MBv7.2.0
详情老式水果机游戏 休闲益智0MBv1.0
详情点击查看更多