在这个网页上,我们可以看见有一幅图片,图片中间有一个灰度的条纹.通过查看站点上的提示可以知道这是要我们把灰度图片给解码出来.因此我们要用到图片处理PIL.PIL不是Python自带的工具,要手动安装。安装好之后我们就可以应用了。有关PIL的详细用法请查看官网 .
import Image
import re
def image_in2():
im=Image.open('E:\python challenge\oxygen.png')
width=im.size[0]
answer=''
p=im.load()
for i in range(0,width,7): #Extract every 7th pixel from row
pix=p[i,45] #get a pixel object(r,g,b,a)
if (pix[0]==pix[1]==pix[2]): #only look at gray scale pixels
answer=answer+chr(pix[0])
print answer
|
上面代码执行出来的结果是:
smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]
|
通过结合前面的几个例子,可以猜出是要我们解码这些数字序列。
digits=re.findall('(\d+)',answer)
#print digits
ans=''
for d in digits:
ans=ans+chr(int(d))
print ans
|
我们也可以更简单的方式来实现:
list=re.findall('(\d+)',answer) #find all numbers in answer and put it into
list
print ''.join(map(chr,map(int,list))) #int each numbers in list,then chr them.
|
得到的结果是:
阅读(337) | 评论(0) | 转发(0) |