Python Challenge 第七关
第七关,只有一张图片,右键源代码也什么都没有,只是这图片上有一行类似马赛克一样的部分。看来答案只有在这张图上找了。下载了图片,去网上搜一下有什么库可以处理图像。搜到了一个PIL,发现安装的pythonxy里面直接有这个库,可以直接用了。
首先用画图,找到这一行马赛克部分的区域:
横向:0-609
纵向:43-53
就先输出一行:
img = Image.open(r'C:\Users\Leo\Desktop\oxygen.png') data = [img.getpixel((i, 43)) for i in xrange(0, 609)] print data
得到一个由四元组组成的列表,而且每个四元组前三个数都一样,最后一个数为255,应该表示一组 RGBA 数据。每七个四元组都是一样的。这一步卡了很久,不知道如何进行下去。去网上搜了下,说转换为 ASCII 码,因为 ASCII 码也是255个,就试了下:
img = Image.open(r'C:\Users\Leo\Desktop\oxygen.png') data = [chr(img.getpixel((i, 43))[0]) for i in xrange(0, 609, 7)] print ''.join(data)
得到了一行输出:
smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]
看来把这个列表改为 ASCII 码就是答案了:
rst = [105, 110, 116, 101, 103, 114, 105, 116, 121] msg = [chr(i) for i in rst] print ''.join(msg)
输出答案:integrity
修改 url 进入下一关:http://www.pythonchallenge.com/pc/def/integrity.html