什么是iDOT块

时间:2015-11-24 13:19:55

标签: ios macos png retina-display file-format

观看我在带有Retina显示屏并运行OS X 10.11的MacBook Pro上拍摄的屏幕截图,我发现它包含以下这些块:

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

所有这些都是the 2003 spec的一部分,除了iDOT这是一个小的(28字节)块。根据{{​​3}},它的第二个字母是大写的事实应该表明它是一个具有公共规范的块。虽然我无法在任何地方找到它的规格。虽然它似乎是chunk naming conventions,但它并未在Register of public PNG chunks and keywords, Version 1.4.6中列出。

网上有很多网站提到这个块,包括Stack Overflow上的许多网站。大多数人都在描述

的错误信息
ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk

那些已经解决的问题发现某些图像损坏不是由于这个块而不是必需的,或者应用了一些可能也删除了这个块的转换。

许多页面也提到了Retina显示屏。这是我的猜测,并希望这个块以某种方式显示截屏时的显示密度。这对the latest version非常有用。

编辑:拍摄更多屏幕截图,我发现像素密度似乎确实起作用:以原始分辨率运行显示器我没有得到这样的块和图像尺寸如图所示屏幕截图。只有在更高的密度下才能获得块和PNG图像大小,它是显示的大小的整数倍。 28字节的数据似乎代表7个小端32位整数。对我来说,这些是(2, 0, h, 40, h, h, x),其中2可能表示像素密度,h是明显的图像高度(即实际存储的一半),x是我不知道的一些数字根本不明白。我不知道分数像素密度将如何进入这个游戏。

哪里可以找到细节,甚至可以找到这个块的规格?我是否需要联系Apple或注册表,或者是否有人可以提供更多详细信息?

0 个答案:

没有答案