【发布时间】:2014-12-14 23:52:44
【问题描述】:
我操作图像的 RGBA 值并使用 toDataUrl 保存它,如下所示:
image.src = ctx.toDataURL("image/png");
现在我想读出这个保存图像的 RGBA 值。它应该具有相同的 RGBA 值,但实际上 某些值已更改,即:从 RGB(0,0,1) 更改为 RGB(0,0,0)。这似乎不是一个大问题 但我需要与我已经处理过的完全相同的值来解码我的编码图像,因为我编写了一个隐写术,否则我无法确定处理过的图像及其 RGBA 值是否正确保存。
编辑: 编码后的图像由用户加载到我的服务器上,并作为 img 元素添加到 DOM 中。 比我的编码函数通过带有 ctx.getImageData 的画布访问此图像。 现在我在 LSB 方法之后操作 RGBA 值。 (二进制消息嵌入在每个 R、G、B 和 A 值的最后一位)
编码函数本身是有效的,但是在解码(使用 toDataURL 保存的操作图像)时,getImageData 之前和之后的数据数组不相等。
我猜这可能是由 toDataURL 引起的某种数据丢失
【问题讨论】:
标签: javascript canvas html5-canvas