我想知道PNG是否包含如下数据?
我所做的是将 jpg 文件转换为 png 格式,我希望检索到与 jpg 相同的信息,如下所示:
当前使用此 as3 library 读取数据。
IDF0--- IDF @[134 - 248](9 个条目)方向(SHORT):1 XResolution(RATIONAL):72/1 YResolution(RATIONAL):72/1 ResolutionUnit(SHORT):2 软件(ASCIIx16):QuickTime 7.6 .6 DateTime (ASCIIx20) : 2011:10:02 22:43:37 HostComputer (ASCIIx16) : Mac OS X 10.6.8 Exif IFD (LONG) : 8 34853 GPS IFD (LONG) : 248
方向(短):1
XResolution (RATIONAL) : 72/1
Y分辨率(合理):72/1
分辨率单位(短):2
软件(ASCIIx16):QuickTime 7.6.6
日期时间 (ASCIIx20) : 2011:10:02 22:43:37
主机计算机(ASCIIx16):Mac OS X 10.6.8
Exif IFD(多头):8 34853
GPS IFD(长):248
EXIF IDF--- IDF @[8 - 134](10 个条目) ExifVersion (UNDEFINEDx4) : 0220 DateTimeOrigina (ASCIIx20) : 2011:04:14 17:22:01 UserComment (UNDEFINEDx63) : ASCII FlashpixVersion (UNDEFINEDx4) : 0100 ColorSpace (短):1 PixelXDimension(长):1022 PixelYDimension(长):486 未知(ASCIIx13):图像标签-LOL SceneCaptureType(短):0
ExifVersion (未定义x4) : 0220
DateTimeOrigina (ASCIIx20) : 2011:04:14 17:22:01
用户评论(未定义x63):ASCII
Flashpix版本(未定义x4):0100
颜色空间(短):1
PixelXDimension(长):1022
PixelYDimension(长):486
未知(ASCIIx13):图像标签-LOL
场景捕捉类型(短):0
GPS IDF--- IDF @[248 - 338](7 个条目)互操作性索引(ASCIIx2):N 互操作性版本(RATIONALx3)@425:52/1、1144/100、0/1 未知(ASCIIx2):W 未知( RATIONALx3) : 1/1, 4392/100, 0/1 未知 (RATIONAL) : 5/1 未知 (ASCIIx2) : T 未知 (RATIONAL) : 3694/117
互操作性索引(ASCIIx2):N
互操作性版本 (RATIONALx3) @425: 52/1, 1144/100, 0/1
未知(ASCIIx2):W
未知 (RATIONALx3) : 1/1, 4392/100, 0/1
未知(理性):5/1
未知(ASCIIx2):T
未知(理性):3694/117
编辑:Extensions to the PNG 1.2 Specification 的 1.5.0 版(2017 年 7 月)终于添加了一个 EXIF 块。编码器-解码器是否开始支持它还有待观察。
原文:PNG 不嵌入 EXIF 信息。但是,它允许在图像中嵌入元数据“chunks”。一些 standardized chunks 对应于一些 EXIF 属性(物理尺寸、时间戳)。还可以将任意文本数据存储为 key=>value
对,或定义新的块类型。因此,理论上您可以存储任何 EXIF 信息......但是,唉,以您自己的自定义格式。似乎有些attempts 的标准化还没有赶上。
编辑:截至 2017 年 7 月,PNG 正式支持 eXIf 块来存储 EXIF 元数据 (specification)。 ExifTool 10.59 及更高版本将 EXIF 写入 PNG 图像中的这个新块。
原文:ImageMagick 在从 JPEG 图像转换时将 EXIF 信息存储在 PNG“原始配置文件类型 APP1”zTXt 块中。 ExifTool 也支持这种将 EXIF 存储在 PNG 图像中的方法(我相信 Exiv2 也支持),但它不是 PNG 或 EXIF 规范的一部分。
PNG 不支持嵌入 EXIF 信息。当您从 JPEG 转换为 PNG 时,信息会丢失。
convert
(来自 ImageMagick)将 JPEG 转换为 PNG,然后使用 convert
将 PNG 转换回 JPEG,则新的 JPEG 中仍会包含 EXIF 数据。
是和不是。
正如其他答案已经说明的那样,PNG 在 v1.5.0(2017 年)中添加 eXIf
之前没有正式的 EXIF 块,据我所知,这个块仍然没有得到广泛的支持。
但那是因为它不需要它。许多软件按照约定在一个 iTXt
(或压缩的 zTXt
)块中将 EXIF 编码为 PNG,标记为 “原始配置文件类型 APP1”。较新的 eXIf
块旨在为此提供一个标准化的位置,尽管在我看来这艘船现在已经航行了。
此外,EXIF 标准的大部分元数据都可以由 XMP 表示,这是一种替代的和更新的元数据传输机制,具有用于此目的的 EXIF 命名空间。多年来,PNG 文件在 iTXt
块中包含 XMP 文档(包括翻译的 EXIF 元数据)。您会发现许多处理器在运行中在两者之间进行转换。
你的意思:
PNG 文件是否包含您列出的元数据项?简短的回答:它会有所不同。 PNG 是否使用 EXIF 标准来存储此类元数据?简短的回答:一般不会。
通常,PNG 使用属于 PNG 标准的各种块来存储元数据。浏览您的清单:
方向 - 不适用于 PNG - 从左上角开始逐行固定。
XResolution、YResolution、ResolutionUnit - pHYs 块。
软件、HostComputer、其他文本元数据 - tEXt、iTXt、zTXt 块。
DateTime - 我不清楚这是什么日期/时间。 tIME 表示上次修改图像数据的日期/时间;其他日期/时间可以存储在文本块中。创建时间实际上是定义的文本块键,但没有规定格式和处理时区的方式,这是一个糟糕的设计。
ColorSpace、PixelXDimension、PixelYDimension - 不确定这些将如何成为元数据。它们是图像的基础,因此位于 IHDR 块中。
不知道你列出的其他人是什么意思。
但令人费解的是,近年来,一个 eXIf 块已添加到扩展块的官方列表中(这本质上是 PNG 规范的附录)。据推测,它的目标是保留从 JPEG/TIFF 转换为 PNG 的文件中的信息,并且不打算在最初创建为 PNG 的文件中使用,但这并不清楚。
不定期副业成功案例分享