Я манипулирую значение RGBA из изображения и сохранить его toDataUrl так:Может ли метод canvas toDataUrl манипулировать значениями rgba?
image.src = ctx.toDataURL("image/png");
Теперь я хочу зачитать значения RGBA из этого сохранено изображения. Он должен иметь одинаковые значения RGBA, но фактически некоторые значения изменены, то есть от RGB (0,0,1) до RGB (0,0,0). Это не похоже на большую проблему. Но мне нужны точные значения, которые я уже обработал для декодирования моего кодированного изображения, так как я программирую стеганографию, иначе я не могу быть уверен, что управляемое изображение и его значения RGBA будут сохранены правильно.
Редактировать: Закодированное изображение загружается на мой сервер пользователем и добавляется в DOM как элемент img. Чем моя функция кодирования обращается к этому изображению с помощью canvas с ctx.getImageData. Теперь я управляю значениями RGBA после LSB-метода. (Сообщение в двоичном формате вставляется в последний бит каждого значения R, G, B и A)
Функция кодирования работает, но когда дело доходит до декодирования (управляемого изображения, сохраненного с помощью toDataURL), массивы данных - до и после - из getImageData не равны.
Я предполагаю, что это может быть какой-то потери данных, вызванные toDataURL
ctx.putImageData(): «Атрибуты globalAlpha и globalCompositeOperation, а также атрибуты тени игнорируются для целей этого вызова метода: пиксели на холсте заменяются оптовой, без композиции, альфа-смешивания, без теней и т. Д. «. В связи с моей проблемой стеганографии это означает, что я не могу использовать альфа-канал, только RGB может работать для меня. Это верно? Не влияет ли альфа на значения RGB? – Reijo