图片解码python

一 图片解码具体步骤:

1.1

选择要解码的图片副本,decodeImage()函数用于返回图片解码后的隐藏文字,它接受一个图片对象参数。
在这里插入图片描述

1.2

获得图片的像素列表,在列表中遍历得到最低有效位的数据。
在这里插入图片描述

1.3

找到数据截至处的位置。
在这里插入图片描述

1.4

调用binaryToString()函数将二进制字符转换为UTF-8。
在这里插入图片描述

1.4.1

用匿名函数lambda实现rec(x与i是形参): lambda x, i: x and (x[2:8] + (i > 1 and rec(x[8:], i-1) or ‘’)) or '。
将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
示例:
add = lambda x, y: x+y
相当于定义了加法函数lambda x, y: x+y,并将其赋值给变量add,这样变量add就指向了具有加法功能的函数。
这时我们如果执行add(1, 2),其输出结果就为 3。

1.4.2

fun()接受2个参数,第一个参数为表示一个字符的二进制字符串,这个二进制字符串可能有不同的长度(8\16\24…48);第二个参数为这个字符占多少个字节。x[i+1:8]获得第一个字节的数据,然后调用rec(),以递归的方式提取后面字节中的数据。

1.4.3

int()函数中调用fun()获得第一参数数据字符串,第二个参数代表进制。chr()接受一个参数,参数为int值,返回Unicode(UTF-8是UNICODE的一种变长度的编码表达方式)码点为这个int值的字符

1.4.4

最后我们将当前字符的索引增加当前字符的长度,得到下一个字符的索引,并返回字符串。
注意:只有x所在的位置(也即是字节中第一个0之后的数据存储的是真正的字符数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值