, Как использовать блок IDAT PNG?

я пытаюсь понять, как данные хранятся в блок IDAT. Я пишу немного класса PHP, и я могу получить большую часть информации о блоках, но что я получаю для IDAT, не соответствует пикселям моего изображения:

enter image description here Это 2×2px истинный цвет с альфой (битовая глубина 8).

, Но когда я интерпретирую данные IDAT как это:

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

я добираюсь

00000000ffffff00ffffff000000

, который я не понимаю, как он может соответствовать пикселям. Или это - мой код, который повреждает данные?

спасибо за вашу справку!

РЕДАКТИРОВАНИЕ: Я добираюсь

08d705c101010000008010ff4f1750a93029e405fb

, поскольку шестнадцатеричное число сжало данные, таким образом, это кажется мной потеря несколько байтов после распаковки.

enter image description here

9
задан MatTheCat 3 September 2011 в 13:18
поделиться