0

我正在尝试将文本编码为图片,然后使用 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

错误:回溯(最近一次调用最后一次):文件“C:\Users\xxxx\Desktop\Python\steganography\all.py”,第 11 行,在 data=s.decode() UnicodeDecodeError: 'ascii' codec can't解码位置 0 中的字节 0xff:序数不在范围内(128)

4

1 回答 1

0

就像 nneonneo 建议的那样,stepic 不适用于 jpeg。从在线文档

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

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

于 2014-09-19T10:10:50.490 回答