Exifr Exifr v7.0.0下载

分类:程序源码 大小:42.1 MB 更新日期:2024年11月13日
本站评级:★★★★☆ 语言:简体中文 授权版本:官方免费 运行环境:Windows 11,Windows 10,Windows 8,Windows 7

Exifr Exifr v7.0.0


Exifr 软件是一个高效便捷且简单专业的JavaScript EXIF读取库,可帮助用户解析所有MB数据,使用这款软件用户无需读取整个文件并解析MB数据,它可以能够有根据的读取通常位于元数据所在位置的文件的一小部分,每种平台文件格式和数据类型的处理方法都不同,以确保最佳性能;Exifr支持查找元数据功能,可快速搜索识别由段或嵌套框组成的文件结构,帮助用户快速精准的获取指定的源数据文件,该软件支持读取和处理各种常见的文件,满足用户所有操作需求,有需要的朋友可以能够下载使用。

Exifr(EXIF读取库)

软件功能

提取所有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或者更好的是,建立自己的周围模块化内核。

Exifr(EXIF读取库)

浏览器: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'(推荐)。

例子

Exifr(EXIF读取库)

仅提取某些标签

Exifr(EXIF读取库)

提取缩略图

Exifr(EXIF读取库)

网络工作者

Exifr(EXIF读取库)

浏览器中的UMD

Exifr(EXIF读取库)

浏览器中的ESM

Exifr(EXIF读取库)

演示版

操场

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了解更多信息。

Exifr(EXIF读取库)

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()如果以分块模式读取文件,则也有必要关闭文件。

Exifr(EXIF读取库)

file 争论

string

文件路径

URL,对象URL

Base64或Base64 URL

Buffer

ArrayBuffer

Uint8Array

DataView

Blob, File元素

options 争论

array 要解析的标签,其快捷方式 options.pick

true解析所有段和块的快捷方式

object 具有精细设置

所有其他和未定义的属性均从默认值继承:

Exifr(EXIF读取库)

标签过滤器

Exifr可以能够避免读取某些标签,而不是像其他exif库一样读取但不将其包括在输出中。例如,EXIF块中的MakerNote标签通常很大-数十KB。如果不需要,读取这样的标签会浪费时间。

提示:使用数字标记代码比使用字符串名称甚至更快,因为exifr不必在字典中查找字符串。

options.pick

类型: Array

将要解析的唯一标签的数组。

在词典中查找指定的标签。启用它们各自的块以进行解析,禁用所有其他块。提取所有请求的标签后,解析结束。

Exifr(EXIF读取库)

options.skip

类型:Array

默认值:['MakerNote', 'UserComments']

不会解析的标签数组。

默认情况下,将跳过MakerNote和UserComment标签。但这是在其他地方配置的。

Exifr(EXIF读取库)

段和块

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。

Exifr(EXIF读取库)

解析为:

Exifr(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 可以能够与任何其他块配对以禁用除所述块之外的所有其他块。

Exifr(EXIF读取库)

每个TIFF块和整个tiff段也可以能够使用object或配置array,就像options参数一样。

object-自定义选项中启用-过滤器(pick,skip)和格式化(translateKeys,translateValues,reviveValues)

array-已启用,但仅从此数组中选择标签

TIFF块自动从继承options.tiff,然后从继承options。

Exifr(EXIF读取库)

块状阅读器

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(缩略图)一起使用。标记键是数字的,有时是相同的,并且可能会发生冲突。

Exifr(EXIF读取库)

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开始的数字键。

Exifr(EXIF读取库)

options.translateValues

类型:bool

默认值:true

将标记值从原始枚举转换为可理解的字符串。了解有关字典的更多信息。

Exifr(EXIF读取库)

options.reviveValues

类型:bool

默认值:true

将日期从字符串转换为Date实例,并将其他一些标记修改为更易读的格式。了解有关字典的更多信息。

Exifr(EXIF读取库)

进阶API

给高级用户的提示。除非您对定制和捆绑程序有所了解,否则无需进一步阅读。

模块化,Pugin API,配置自定义捆绑

翻译词典,定制

与Webpack,宗地,汇总,盖茨比等配合使用...

表现

改善性能的提示

这里有一些提示,用于在处理大量文件时需要从exifr中挤出额外的速度。单击以展开。

使用options.pick,如果你只需要某些标签

options.ifd0如果不需要数据,请禁用

使用exifr.gps(),如果你只需要GPS

缓存options对象

基准测试

自己尝试使用Benchmark / chunked-vs-whole.js进行基准测试

Exifr(EXIF读取库)

使用+ -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反向兼容,重新实现了分块阅读器。

版权声明:Exifr(EXIF读取库)所展示的资源内容均来自于第三方用户上传分享,您所下载的资源内容仅供个人学习交流使用,严禁用于商业用途,软件的著作权归原作者所有,如果有侵犯您的权利,请来信告知,我们将及时撤销。


软件下载信息清单:


驱动文件名称 发布日期 文件大小 下载文件名
Exifr(EXIF读取库)安装包 2024年11月13日 42.1 MB Exifrv.zip
下载地址:

相关推荐: 驱动大全 / 软件下载

软件评论

昵称*

手机*

网址

驱动总数
22526+
文章总数
3520+
评论条数
265+
运行天数
300+