Comments 4
Видать не так далеко вы были посланы учить матчасть ;)
Покопавшись чутка глубже, даже здесь на хабре, можно было бы заметить, что есть такая важная особенность в цветовосприятии, как очень слабая чувствительность глаза к синему цвету.
Лет десять или двенадцать назад мне доводилось баловаться с похожей задачкой, только в формате bmp, что не меняет сути. Я разделил плотность записи по каналам и добавил несколько режимов глубины внедрения.
Как и положено самый незаметный режим и самый требовательный к размеру изображения был тот, что использовал для записи лишь несколько младших бит синего канала, максимум до 4-х. Потом если картинка невелика, а желание впихнуть осталось неудовлетворенным я давал возможность подпортить пару бит из красного канала, если же неугомонность стеганографиста была зашкаливающей то внедрялся в зеленый.
Необходимо строго следить за пропорцией внедрения посторонних битов информации в три байта, кодирующие цвет.
Так как небольшие тексты на порядок меньше по объему нежели даже небольшие изображения, можно обходиться только парой бит синего канала и это гарантированно не проявит битых пикселей на итоговом изображении.
Можно было бы поиграться и посмотреть в сторону альфа-канала, при сохранении в режиме RGBA, может и там можно отжать парочку младших бит и не сильно исказить цвет, добавив ему прозрачности. Но в эту сторону я тогда не полез, честно было лень.
Наигравшись вдоволь я порадовался своей конгениальности и больше к таким забавам не возвращался. Тем более, что имея хоть где-нибудь оригинал изображения, Ева легко вычислит точки внедрения, а если это внедрение делалось напрямую, без предварительного шифрования, то это просто подарок на тарелочке с голубой каемочкой )))
Удачи вам в ваших изысканиях!
Python и стеганография