python challenge level 9 url: http://www.pythonchallenge.com/pc/return/good.html
这一题,其实还是很简单的,看到这张图之后我产生了两个想法:
- 连接这些点
- 也许于上一次的图片处理一样,需要使用rgb的值,不过可能性比较小
然后看了看title,果然,这一题的提示是连接这些点。但是如果仅仅是把图片上所看到的点连接起来似乎得不到什么信息,于是又打开了也页面的源代码,果然信息都藏在页面源代码中。在注释中的first和second这两个list估计就是保存所需要连接的点,首先是下载这张图片,然后在创建py文件中定义一个叫first和一个叫second的list,内容则是注释中的内容。接下来就是开始研究PIL这个库了,在这个库中有一个ImageDraw模块,这个模块中有一个line函数,这个函数的作用就是连接给定的点。真的是非常适合这道题。于是就可以很轻松的得到这一题的代码:
#! /usr/bin/env python
'''python challenge level 9
question url: http://www.pythonchallenge.com/pc/return/good.html
answer url: http://www.pythonchallenge.com/pcc/return/bull.html:huge:file
'''
import Image
im = Image.open("level9.d/good.jpg")
first_set = [...] # 注释中的内容
second_set = [...] # 注释中的内容
import ImageDraw
nim = Image.new(im.mode, im.size) # 为了得到更好的视觉效果,我创建了一张新的图片,背景默认为black
draw = ImageDraw.Draw(nim)
draw.line(first_set, fill='#fff') # 将线条设置成白色
draw.line(second_set, fill='#fff')
del draw
nim.save('level9.d/level9_result.png')
最后就可以得到一张牛的图
我先在url中输入cow,回转跳到一个不正确的页面,页面的内容如图所示:
页面提示说这是一只公牛,所以应该是bull,因此下一题的链接为:http://www.pythonchallenge.com/pc/return/bull.html