я пытаюсь понять, как данные хранятся в блок IDAT. Я пишу немного класса PHP, и я могу получить большую часть информации о блоках, но что я получаю для IDAT, не соответствует пикселям моего изображения:
Это 2×2px истинный цвет с альфой (битовая глубина 8).
, Но когда я интерпретирую данные IDAT как это:
current(unpack('H*',gzuncompress($idat_data)));
я добираюсь
00000000ffffff00ffffff000000
, который я не понимаю, как он может соответствовать пикселям. Или это - мой код, который повреждает данные?
спасибо за вашу справку!
РЕДАКТИРОВАНИЕ: Я добираюсь
08d705c101010000008010ff4f1750a93029e405fb
, поскольку шестнадцатеричное число сжало данные, таким образом, это кажется мной потеря несколько байтов после распаковки.