gpt4 book ai didi

ios - 什么是 iDOT block

转载 作者:行者123 更新时间:2023-12-05 00:23:02 30 4
gpt4 key购买 nike

查看我在配备 Retina 显示屏并运行 OS X 10.11 的 MacBook Pro 上截取的屏幕截图,我发现它包含这些 block :

IHDR, iCCP, pHYs, iTXt, iDOT, IDAT…, IEND

所有这些都是 the 2003 spec 的一部分, iDOT 除外这是一个小的(28 字节) block 。根据 chunk naming conventions ,它的第二个字母是大写的事实应该表明它是一个具有公共(public)规范的 block 。不过,我在任何地方都找不到它的规范。它未在 Register of public PNG chunks and keywords, Version 1.4.6 中列出或者,虽然看起来是 the latest version .

网络上有很多网站都提到了这个 block ,包括 Stack Overflow 上的很多网站。大多数都在描述错误消息

ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk

那些得到解决的人发现了某种图像损坏,不一定是由于这个 block ,或者应用了一些可能也删除了这个 block 的转换。

许多页面还提到了 Retina 显示器。这是我的猜测,并希望这个 block 以某种方式指示截屏时有效的显示密度。这对 automatic scaling of screenshots 非常有用.

编辑:再拍一些截图,我发现像素密度确实起到了一定的作用:以原始分辨率运行显示器我没有得到这样的 block 和截图时显示的图像尺寸。只有在更高的密度下,我才能获得 block 和 PNG 图像大小,它是所显示图像的整数倍。 28 个字节的数据似乎代表了 7 个 little-endian 32 位整数。对我来说,这些是 (2, 0, h, 40, h, h, x)在哪里 2大概表示像素密度, h是表观图像高度(即实际存储高度的一半)和 x是一些我完全不明白的数字。我不知道分数像素密度会如何进入这个游戏。

在哪里可以找到该 block 的详细信息甚至规范?我是否必须联系 Apple 或注册表,或者这里有人可以提供更多详细信息?

最佳答案

正如 Hendrik 在评论中所写,https://www.hackerfactor.com/blog/index.php?/archives/895-Connecting-the-iDOTs.html已经对这个 block 的目的进行了逆向工程。它包含到编码图像数据中明确定义的位置的偏移量。在刷新之后,解压缩器状态被重置,并且正好在 IDAT block 边界处,并且在图像高度的一半处具有已知像素位置。
这样做的目的是允许在多核处理器上并行解码图像数据。这个目标最近(2021-12-01)在该页面上的评论中得到了确认,该评论来自参与实现的人员。那条评论,尽管离官方还很远,但到目前为止我能找到关于这个问题的最权威的评论吗?

关于ios - 什么是 iDOT block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33894790/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com