具有步进输出的隐写术解码错误

时间:2014-09-19 08:08:27

标签: python python-2.7 steganography stepic

我正在尝试将文本编码为图片,然后使用stepic模块对其进行解码。 当我执行下面的代码时,它会给我解码错误。请注意,建议如何解决它。

#encode text in photo
from PIL import Image
import stepic
im=Image.open("beer.jpg")
im2=stepic.encode(im,"In god we trust")
im2.save("stegbeer.jpg","JPEG")

#decode text from photo
im1=Image.open("stegbeer.jpg")
s=stepic.decode(im1)
data=s.decode()
print data

错误:     Traceback(最近一次调用最后一次):       文件“C:\ Users \ xxxx \ Desktop \ Python \ steganography \ all.py”,第11行,in         数据= s.decode()     UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xff:序数不在范围内(128)

1 个答案:

答案 0 :(得分:0)

像nneonneo建议的那样,stepic并不适用于jpeg。来自online documentation

  

由于数据以颜色存储,而不是以任何格式特定方式存储,因此Stepic可以写入PNG,BMP和其他格式,并且可以读取大量其他格式。 (JPEG不起作用,因为它会抛出数据。)

Stepic直接使用3 lsb嵌入像素。任何影响像素值的有损压缩格式都是不合适的。如果您想使用jpeg图像,则必须使用其他更合适的算法。