|
楼主 |
发表于 2016-12-5 13:09:05
|
显示全部楼层
源代码如下:
- # -*- coding: utf-8 -*-
- """
- Created on Mon Dec 5 11:19:11 2016
- @author: Administrator
- """
- from PIL import Image
- with open('encode.ini') as f:
- data = eval(f.read())
- with open('bible.txt') as b:
- string = b.read()
- def encode(string,data):
- L = '0'*(6-len(str(len(string)))) + str(len(string))
- encode = []
- for l in L:
- encode.append(int(l))
- for s in string:
- ask = str(ord(s))
- enask = '0'*(3-len(ask))+ask
- for e in enask:
- encode.append(int(e))
- newdata = data[:]
- for e in range(len(encode)):
- newdata[e] += encode[e]
- en = Image.new('L',(400,700))
- index = 0
- for x in range(400):
- for y in range(700):
- en.putpixel((x,y),newdata[index])
- index += 1
- en.save('encoded.png')
- encode(string,data)
- def decode(img,data):
- endatas = []
- for x in range(400):
- for y in range(700):
- endatas.append(img.getpixel((x,y)))
- L = endatas[:6]
- l = 0
- for i in range(6):
- l += L[i]
- l *= 10
- l //= 10
- endata = []
- for i in range(l*3+6):
- endata.append(endatas[i]-data[i])
- deask = ''
- for i in range(6,l*3+5,3):
- deask += chr(endata[i]*100+endata[i+1]*10+endata[i+2])
- return deask
- img = Image.open('encoded.png')
- with open('output.txt','w') as op:
- op.write(decode(img,data))
复制代码
encodejpg.rar
(406 KB, 下载次数: 20, 售价: 1 鱼币)
|
|