保存在python中时,为什么GIF像素值会更改?

时间:2018-07-23 10:16:11

标签: python python-imaging-library gif python-imageio

我正在尝试使用LSB方法编写隐写术应用程序,并且它对于某些图像格式已经足够好了。

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

我尝试同时使用imageio和PIL.Image,在两种情况下都是相同的问题

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

Gif是无损的,它不应该更改像素,我最近做了一个使用LSB方法和gif格式的小程序,这是您应该做的几件事:

  • 请确保正确编码后,尝试替换pixel(0,0),然后验证值是否更改(如果未更改),请检查解码

  • 确保gif颜色为255

  • 您稍后会遇到此问题,但组装框架时应放置原始元数据并延迟时间

这些是主要问题,除了我之前说的那样,它是无损压缩,就像png一样,它不应更改像素,因此问题出在编码/解码或RGB颜色类型上。