Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112546
  • 博文数量: 49
  • 博客积分: 2612
  • 博客等级: 少校
  • 技术积分: 431
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-01 14:31
个人简介

来来去去

文章分类

全部博文(49)

文章存档

2015年(1)

2012年(4)

2011年(1)

2010年(42)

2009年(1)

我的朋友

分类:

2010-02-21 14:13:39



在这个网页上,我们可以看见有一幅图片,图片中间有一个灰度的条纹.通过查看站点上的提示可以知道这是要我们把灰度图片给解码出来.因此我们要用到图片处理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.



得到的结果是:

integrity


阅读(337) | 评论(0) | 转发(0) |
0

上一篇:Zip应用

下一篇:8 bz2

给主人留下些什么吧!~~