- What is the iDOT chunk - https://stackoverflow.com/questions/33894790/what-is-the-idot-chunk - What does Apple's iDOT chunk do? -- https://www.hackerfactor.com/blog/index.php?/archives/895-Connecting-the-iDOTs.html uint32_t: Height divisor. Apple divides the image vertically. The only value I have ever seen is "2". uint32_t: Unknown. I don't know the purpose, but it's always "0". This might be reserved for flags. uint32_t: Divided height. The IHDR block defines the image height. This is half the height. Since I've only ever seen a divisor of 2 and Apple PNG images with an even number of lines, I don't know if this serves some other purpose. It could be the maximum height after dividing the image (rounding up). uint32_t: Unknown. The only value I have ever seen is "0x40". (The iDOT chunk contains 28 bytes. The value 0x28 in hex is 40. So maybe this is related?) uint32_t: First half height. The divisor splits the image vertically, into two halves. This is the height of the first half. uint32_t: Second half height. Since I've only seen a divisor of 2 and images that have an even number of rows, the divided height, first half, and second half are all the same value. uint32_t: IDAT restart offset. This is the important value and I think it's the entire purpose of the iDOT block. But to understand it, you have to understand the IDAT chunks. |