我正在尝试使用LSB方法编写隐写术应用程序,并且它对于某些图像格式已经足够好了。
但是,它不适用于GIF图像,因为我注意到保存的gif具有一些不同的像素值(通常为+-1),而LSB方法依赖于更改最低有效位,因此一些不同的值会引发解码算法关闭。
我尝试同时使用imageio和PIL.Image,在两种情况下都是相同的问题
所以基本上我的问题是:为什么像素值在保存时会发生变化,甚至可以使用LSB来对GIF进行编码和解码?
感谢您的帮助。
答案 0 :(得分:1)
Gif是无损的,它不应该更改像素,我最近做了一个使用LSB方法和gif格式的小程序,这是您应该做的几件事:
请确保正确编码后,尝试替换pixel(0,0),然后验证值是否更改(如果未更改),请检查解码
确保gif颜色为255
您稍后会遇到此问题,但组装框架时应放置原始元数据并延迟时间
这些是主要问题,除了我之前说的那样,它是无损压缩,就像png一样,它不应更改像素,因此问题出在编码/解码或RGB颜色类型上。