I'm trying to understand how data are stored into IDAT chunk. I'm writing a little PHP class and I can retrieve most of chunks information but what I get for IDAT doesn't match pixels of my image :

enter image description here It is 2×2px truecolour with alpha (bitdepth 8).

But when I interpret IDAT data like this:

current(unpack('H*',gzuncompress($idat_data)));

I get

00000000ffffff00ffffff000000

I don't understand how it can match pixels. Or is it my code which corrupts data?

Thanks for your help!

EDIT: I get

08d705c101010000008010ff4f1750a93029e405fb

as hex compressed data, so it seems I loss several bytes after uncompressing.

enter image description here

Edit
Report