Строго говоря: нет. Когда вы сохраняете черный (то есть цвет # 000000), вы не можете восстановить предыдущее содержимое.
Однако вы можете хранить свои данные в другом месте, например, внутри метаданных, но мне интересно, что хорошего это будет делать.
Я подозреваю, что вы хотите, чтобы ваше изображение выглядело черным невооруженным глазом. Это может быть сделано за плату (либо по размеру, потере информации или видимости). Есть некоторые вещи, которые вы можете сделать, просто интуитивно:
- Очень с потерями: просто поместите все цвета в цвет, очень близкий к черному, но в соответствии с содержимым вашего изображения, вы просто поместите немного более яркий или темный черный в местах, где ваше изображение будет ярче / темнее. Таким образом, изображение кажется черным, но вы можете восстановить некоторую информацию (очевидно, не точную копию оригинала). Таким образом, я ожидаю, что вы сможете хранить 1 или 2 бита на пиксель на цвет (вместо 8, как на исходном изображении)
- Просто небольшое расширение по предыдущему принципу. Если вам нужна идеальная реконструкция и размер вашего изображения увеличивается, это возможно. Вы просто отображаете 1 пиксель в исходном изображении на 4, 9, 16, ... пикселей на «черном» изображении. Например. если вы выберете 9 пикселей, вы сохраните первую битовую плоскость исходного изображения в первом наборе пикселей, вторую битовую плоскость во втором наборе, ... (а 9-й набор пикселей просто черного цвета).
Конечно, вы можете придумать какую-нибудь схему для смешивания пикселей вокруг, так что только просмотр битовых плоскостей вашего почти черного изображения даст мало визуального ключа. При восстановлении изображения вам придется обратить это вспять.
Очевидно, что эти примеры - просто быстрый способ сделать такую вещь, любой, кто знаком с стеганографией , знает эти уловки (и, конечно, лучшие методы) и может попробовать их отменить, если они что-то подозревают .