PNG 是否像 JPG 一样包含 EXIF 数据?

我想知道 PNG 是否包含如下数据?

我所做的就是将 jpg 文件转换成 png 格式,并且我希望检索到与下面的 jpg 文件相同的信息:

当前使用此 3图书馆读取数据。

  • IDF0——-IDF@[134-248](9条)
    • Orientation (SHORT) : 1
    • 决议(理性) : 72/1
    • 决议(理性) : 72/1
    • 决议单元(简写) : 2
    • Software (ASCIIx16) : QuickTime 7.6.6
    • 日期时间(ASCIIx20) : 2011:10:0222:43:37
    • HostComputer (ASCIIx16) : Mac OS X 10.6.8
    • Exif IFD (LONG) : 8 34853
    • GPS IFD (LONG) : 248

  • EXIF IDF ——-IDF@[8-134](10个条目)
    • ExifVersion (UNDEFINEDx4) : 0220
    • DateTimeOrigina (ASCIIx20) : 2011:04:1417:22:01
    • UserComment (UNDEFINEDx63) : ASCII
    • 闪存版本(UNDEFINEDx4) : 0100
    • ColorSpace (SHORT) : 1
    • 像素 X 维度(长) : 1022
    • 像素维度(长) : 486
    • 未知(ASCIIx13) : 图像标记-LOL
    • SceneCaptureType (SHORT) : 0

  • GPS IDF--- IDF @[248 - 338](7 entries)
    • 互操作性指数(ASCIIx2) : N
    • 互操作性版本(RATIONALx3)@425:52/1,1144/100,0/1
    • 未知(ASCIIx2) : W
    • 未知(RATIONALx3) : 1/1,4392/100,0/1
    • 未知(理性) : 5/1
    • Unknown (ASCIIx2) : T
    • 未知(理性) : 3694/117

101504 次浏览

PNG 不支持嵌入 EXIF 信息。当您从 JPEG 转换为 PNG 时,信息会丢失。

编辑: PNG 1.2规范的扩展版本1.5.0(2017年7月)终于添加了 EXIF 块。如果编码器-解码器开始支持它还有待观察。

原件: PNG 不嵌入 EXIF 信息。但是,它允许在图像中嵌入元数据“ 大块的”。一些 标准化的数据块对应于一些 EXIF 属性(物理维度、时间戳)。还可以将任意文本数据存储为 key=>value对,或者定义新的块类型。所以,理论上你可以存储任何 EXIF 信息... ... 但是,唉,在您自己的自定义格式。一些标准化的 企图似乎还没有赶上。

编辑: 截至2017年7月,PNG 正式支持一个 eXIF 块来存储 EXIF 元数据(规格)。ExifTool 10.59和更高版本将 EXIF 写入 PNG 图像中的这个新块。

原始: ImageMagick 存储 EXIF 信息在一个 PNG“原始配置文件类型 APP1”zTXt 块从 JPEG 图像转换时。ExifTool 也支持这种在 PNG 图像中存储 EXIF 的方法(我相信 Exiv2也支持) ,但它不是 PNG 或 EXIF 规范的一部分。

2017年7月开始,EXIF 数据似乎有一个正式注册的块,名为... ... 前情提要:

EXIf 块的数据段包含一个 eXIf 配置文件,其格式在[ CIPA DC-008-2016]的“压缩数据中 APP1的互操作性结构”中指定,但不包括 JPEG APP1标记、长度和4.7.2(C)中描述的“ eXIf ID 代码”,即“ eXIf”、 NULL 和填充字节。

Note that this is both A) only a few months old (as of writing) and B) an optional extension, not part of the basic specification. Therefore, support for the eXIf chunk might be limited in many applications.

Did you mean:

  1. PNG 文件是否包含您列出的元数据项? 简短的回答: 各不相同。
  2. PNG 是否使用 EXIF 标准来存储这样的元数据? 简短的回答: 一般没有。

通常,PNG 使用各种块,这些块是 PNG 标准的一部分,用于存储元数据。浏览你的清单:

  • 方向-不适用于 PNG-从左上角开始逐行固定。
  • XResolution, YResolution, ResolutionUnit - 物理治疗 chunk.
  • 软件,主机,其他文本元数据-TXt,iTXt,zTXt块。
  • DateTime - Not clear to me what this is the date/time of. tIME indicates the date/time of last modification to the image data; other dates/times can be stored in text chunks. Creation Time is actually a defined text chunk key, but the format and how time zones are handled aren't stipulated, which is a bad design.
  • ColorSpace,PixelX維度,PixelY維度——不确定这些怎么会是元数据。它们是图像的基础,因此位于 IHDR块中。
  • 不知道你列出的其他人是什么意思。

但令人费解的是,近年来 前情提要块已经被添加到了官方的扩展块列表中(这实际上是 PNG 规范的附录)。推测它的目标是保存从 JPEG/TIFF 转换为 PNG 的文件中的信息,并且不打算在最初创建为 PNG 的文件中使用,但这并不清楚。

是也不是。

正如其他答案已经指出的,PNG 直到 eXIf在 v1.5.0(2017)中添加之前都没有正式的 EXIF 块,据我所知,这个块仍然没有得到广泛的支持。

但那是因为它不需要。许多软件按照惯例将 EXIF 编码在带有 iTXt(或压缩的 zTXt)块符号的 “ APP1型原始配置文件”中的 PNG 中。较新的 eXIf块旨在为此提供一个标准化的位置,尽管在我看来,船已经起航了。

此外,EXIF 标准的大部分元数据可以用 XMP 表示,XMP 是一种替代的、更新的元数据传输机制,它具有一个 EXIF 名称空间,正是为了这个目的。多年来,PNG 文件在 iTXt块中包含 XMP 文档(包括已翻译的 EXIF 元数据)。您会发现许多处理器在运行时在两者之间进行转换。