PythonChallenge 挑战之路 Level-28

来源:互联网 发布:linux 删除所有文件 编辑:程序博客网 时间:2024/06/08 07:27

这一关还是图像处理。仔细看图片可以发现一些色条明暗相间。提示文字说RING-RING-RING,say it out loud,那么将图片的三个通道分离,发现条纹来自于GREEN通道。

从网页的标题many pairs ring-ring来看,应该是将G通道的像素信息两两成对。尝试用这些坐标画图:


并不是什么文字、图案,但是那两条平行线很明显,说明这些坐标点存在规律。将坐标相减,那两条平行线的结果为42和-42,而其他的坐标点的数值(绝对值)就可以组成文本:

whodunnit().split()[0] ?

python的发明人为Guido van Rossum,所以答案就是guido啦。

import Imageimg = Image.open('bell.png')img.load()r,g,b = img.split()gdata = list(g.getdata())newlist = [(gdata[i]-gdata[i+1]) for i in range(0,len(gdata),2)]s = ''for i in newlist:    if i != -42 and i!=42:        s+=chr(abs(i))print s


====================分割线=====================

在用Image模块进行三通道分离时,存在一个小小的bug,需要先调用load(),否则就会显示:

AttributeError: 'NoneType' object has no attribute 'bands'