继续挑战
第11题地址5808.html
- 网页标题是
odd even
,题目内容为空,源码也没有隐藏内容
显然图片本身就是题目,而提示信息只有网页标题这个odd even
——奇偶。
初一看,图片像是两张不同的图片以某种方式叠加而得,但放大一看,其实每隔一个像素就会有一个略黑的像素,结合标题odd even
,估计是让我们将像素点的坐标按奇偶分下类:
from io import BytesIO
from itertools import product
import requests
from PIL import Image
with requests.Session() as sess:
sess.auth = ('huge', 'file')
response = sess.get('http://www.pythonchallenge.com/pc/return/cave.jpg').content
img = Image.open(BytesIO(response))
width, height = img.size
img_new = Image.new(img.mode, (width, height))
img_data = img.load()
img_new_data = img_new.load()
for x, y in product(range(width), range(height)):
new_x = x // 2 + (x % 2) * (width // 2)
new_y = y // 2 + (y % 2) * (height // 2)
img_new_data[new_x, new_y] = img_data[x, y]
img_new
我们可以看到坐标为(奇,奇)或者(偶,偶)的图片(左上和右下),在黑色背景中隐约有一些图案,事实上我们可以做一下图像增强:
img_new2 = Image.new(img.mode, (width // 2, height // 2))
img_new_data = img_new2.load()
for x, y in product(range(width), range(height)):
if x % 2 == 0 and y % 2 == 0:
img_new_data[x // 2, y // 2] = tuple(5 * p for p in img_data[x, y])
img_new2
结果上显示有evil
字符,修改地址到evil.html,打开到下一题,成功!