Я знаю, что это случайный вопрос, но выслушай меня :)

Я использую Python и PIL, чтобы сделать скрипт, который может скрыть текст в файл PNG. Моя идея была после некоторого исследования, что я мог взять фрагменты IDAT файла PNG (те, которые имеют пиксельные байты) и изменить эти байты последними битами. Так, например если один байт будет 10 (00000110), то я могу изменить его на 9 (00000101). Я бы сделал этот процесс, чтобы записать все биты моего сообщения в эти байты. После этого я мог прочитать последние два бита, чтобы составить сообщение, которое скрыто.

По какой-то причине, хотя я пытаюсь сохранить или открыть файл, я изменился с моим кодом, я получаю:

OSError: broken data stream when reading image file

Я сделал несколько тестов, и открытие и сохранение нормальных файлов PNG работает нормально. На данный момент, я думаю, проблема в том, что я не могу изменить эти биты так, как хочу.

Кто-нибудь знает о формате PNG, чтобы знать, что может вызвать это? Я знаю, что блоки IDAT имеют байты фильтра, но я не уверен, что они необходимы для правильной работы файла.

0
BladeZ