0

我正在尝试使用 LSB 方法编写隐写术应用程序,到目前为止,它对于一些图像格式来说已经足够好了。

但是它不适用于 GIF 图像,因为我注意到保存的 gif 具有一些不同的像素值(通常为 +-1),并且 LSB 方法依赖于更改最低有效位,因此一些不同的值会使解码算法关闭.

我已经尝试同时使用 imageio 和 PIL.Image 并且在这两种情况下都是同样的问题

所以基本上我的问题是:为什么像素值在保存时会发生变化,甚至可以使用 LSB 对 GIF 进行编码和解码?

谢谢你的帮助。

4

1 回答 1

1

Gif 是无损的,它不应该改变像素,我最近做了一个小应用程序,使用 gif 格式的 LSB 方法,这里有一些你应该做的事情:

  • 确保在正确编码时,尝试替换像素(0,0),然后验证值是否发生变化,如果不是,请检查解码

  • 确保 gif 颜色为 255

  • 您稍后会遇到这种情况,但是您应该在组装帧时放置原始元数据和延迟时间

这些是主要问题,除此之外,正如我之前所说,它是一种无损压缩,就像 png 一样,它不应该改变像素,所以问题在于编码/解码或 RGB 颜色的类型。

于 2018-07-24T19:02:27.903 回答