[Level 25]
Title: imagine how they sound
源碼中看到can you see the waves?膀捷,還有圖片是lake1.jpg晾咪,按套路嘗試祈远,并沒有圖片。waves杆兵?之前有 wav 格式的音頻伟骨,試了下,得到 lake1.wav扼雏,但卻是一片雜音坚嗜。
但是也到此為止了。沒有嘗試 lake2.wav,lake3.wav……而一直到lake25.wav為止共有25個wav文件。
下載 wav 文件:
import httplib2
h = httplib2.Http('.Cache')
url = 'http://www.pythonchallenge.com/pc/hex/lake{0}.wav'
headers = {'Authorization': 'Basic YnV0dGVyOmZseQ=='}
for i in range(1,26):
data = h.request(url.format(i),headers=headers)[1]
with open('lake/lake{0}.wav'.format(i),'wb') as f:
f.write(data)
把25個wav文件整成一個大小為300*300的圖片:
import wave
from PIL import Image
res = Image.new('RGB',(300,300))
ws = [wave.open('lake/lake{0}.wav'.format(i)) for i in range(1,26)]
for i in range(25):
data = ws[i].readframes(ws[i].getnframes())
im = Image.frombytes('RGB',(60,60),data)
res.paste(im,(60*(i%5),60*(i//5)))
res.show()
得到decent咨察,[Level 26]
小結
一個wav文件有10800幀拾氓,每三幀為一像素,所以一個wav文件有3600像素(60*60),25個就是300*300。
-
PIL.Image.frombytes()
從緩沖區(qū)中的像素數據創(chuàng)建圖像副本。 -
Image.paste()
將另一圖片粘貼到此圖片中蜈敢。