header/beginning PNG 文件中的非确定性*数据
Non-deterministic* data in header/beginning of PNG files
我注意到 Gimp 从相同的 RPG 数据创建的 PNG 文件除了最开头外是相同的。此图像显示了使用 Gimp 创建的其他相同 PNG 文件的差异:
每次更改的数据是什么?它是如何编码的?有解码工具吗?你能从这些信息中学到一些东西吗?你能找出 PNG 文件何时(可能)根据此信息创建的吗?
我的印象是 PNG 文件是确定性创建的*,并且不存储解码图像所不需要的元数据。 (显然,最后一部分也不正确,因为 Gimp 将自己的名称写入文件但不询问用户(如果您将某些内容导出为 JPEG 文件,则会这样做)。)
* 我在这里使用 "deterministic" 一词来指代事物,并且仅指在给定相同输入的情况下每个 execution/export/whatever 上相同的事物。我通常会使用 "functional" 这个词(即像数学函数一样),但我担心这可能会被不知道 "functional" 在数学中意味着什么的人误解。显然,这与信息论中这个词的用法不同。
tIME
存储图像上次更改的时间,所以对我来说它与您创建的文件的时间戳相同。
bKGD
给出默认背景色。可能是您在 Gimp 中使用的 bakcgournd 颜色,或者透明像素的颜色。
tEXT
with key Comment
and value Created with Gimp
只是默认注释。您可以在 Image>Properties
中更改图片的评论,您可以在 Edit>Preferences>Default Image
中设置默认评论
当我导出同一个 PNG 两次时,我只看到 tIME
有变化。事实上,即使导出具有透明像素的 PNG,我也无法获得 bKGD
项目。导出时是否使用任何特定选项?
我注意到 Gimp 从相同的 RPG 数据创建的 PNG 文件除了最开头外是相同的。此图像显示了使用 Gimp 创建的其他相同 PNG 文件的差异:
每次更改的数据是什么?它是如何编码的?有解码工具吗?你能从这些信息中学到一些东西吗?你能找出 PNG 文件何时(可能)根据此信息创建的吗?
我的印象是 PNG 文件是确定性创建的*,并且不存储解码图像所不需要的元数据。 (显然,最后一部分也不正确,因为 Gimp 将自己的名称写入文件但不询问用户(如果您将某些内容导出为 JPEG 文件,则会这样做)。)
* 我在这里使用 "deterministic" 一词来指代事物,并且仅指在给定相同输入的情况下每个 execution/export/whatever 上相同的事物。我通常会使用 "functional" 这个词(即像数学函数一样),但我担心这可能会被不知道 "functional" 在数学中意味着什么的人误解。显然,这与信息论中这个词的用法不同。
tIME
存储图像上次更改的时间,所以对我来说它与您创建的文件的时间戳相同。bKGD
给出默认背景色。可能是您在 Gimp 中使用的 bakcgournd 颜色,或者透明像素的颜色。tEXT
with keyComment
and valueCreated with Gimp
只是默认注释。您可以在Image>Properties
中更改图片的评论,您可以在Edit>Preferences>Default Image
中设置默认评论
当我导出同一个 PNG 两次时,我只看到 tIME
有变化。事实上,即使导出具有透明像素的 PNG,我也无法获得 bKGD
项目。导出时是否使用任何特定选项?