0%

Python Challenge (Level 25)

第25关

完成这一关后,不得不佩服弄出这道题的Nadav Samet,同时更加佩服解决了它的大神。

这是一幅拼图模样的图片,根据Page Source里的提示can you see the waves?,这一关还要用到wave模块。

把URL后缀改为lake1.wav,lake2.wav,…,lake25会得到25个wav文件。这25个wav文件对应着刚才的25块拼图。把这25个wav文件的内容依次平起来,会得到一张300*300大小的图片。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import urllib
import StringIO
import wave
from PIL import Image

url_t = 'http://butter:fly@www.pythonchallenge.com/pc/hex/lake%i.wav'
Im = Image.new('RGB', (300, 300))

for i in range(25):
print "%i/%i" % (i + 1, 25)
data = wave.open(StringIO.StringIO(urllib.urlopen(url_t % (i + 1)).read()))
patch = Image.frombytes('RGB', (60, 60), data.readframes(data.getnframes()))
pos = (60 * (i % 5), 60 * (i // 5))
Im.paste(patch, pos)

Im.show()

图片上的信息为decenthttp://www.pythonchallenge.com/pc/hex/decent.html