- [Python Challenge通关]第11关 odd eve
- [Python Challenge通关]第9关 connect
- [Python Challenge通关]第8关 working
- [Python Challenge通关]第7关 smarty
- [Python Challenge通关]第0关 warming
- [Python Challenge通关]第3关 re
- [Python Challenge通关]第2关 ocr
- [Python Challenge通关]第12关 dealing
- [Python Challenge通关]第10关 what ar
- [Python Challenge通关]第4关 follow t
![](https://img.haomeiwen.com/i262185/4f49e6285ca675e0.jpg)
挑战地址,点我
分析
页面上是一张模糊的图片,提示信息只有这一关的主题 odd even
。
仔细看图片,上面有一些重影,考虑应该是需要分离出奇数和偶数像素。
奇数和偶数像素怎么定义?现在有两个维度,可能有如下集中方式:
- 只考虑 x
- 只考虑 y
- 考虑 x + y
- 同时考虑 x 和 y
测试发现 3 和 4 是可以的,python 实现如下,第 3 种方式:
#!/usr/bin/env/ python3
from PIL import Image
origin = Image.open('cave.jpg')
width, height = origin.size
# 新建两个图片
odd = Image.new(origin.mode, (width//2, height//2))
even = Image.new(origin.mode, (width//2, height//2))
for x in range(width):
for y in range(height):
# 根据 x + y 的奇偶性质分离到不同的图片
if (x + y) % 2 == 0:
odd.putpixel((x//2,y//2), origin.getpixel((x,y)))
else:
even.putpixel((x//2,y//2), origin.getpixel((x,y)))
odd.show()
even.show()
输出结果:
![](https://img.haomeiwen.com/i262185/5afb8f4e1a0a7fc2.png)
![](https://img.haomeiwen.com/i262185/c87cd7c848625b6b.png)
可以看到有一张图片上显示了一个单词 evil
,替换 url 就是下一关的入口 http://www.pythonchallenge.com/pc/return/evil.html
参考资源:
网友评论