Python Challenge[11]

[Level 11]

Python Challenge[11]_第1张图片

Title: odd even

又是仅有图片的关卡,图片是模糊的,看似有重叠。想不出来。搜索了下,标题有奇偶的意思。奇偶,排列组合,慢慢尝试吧。

from PIL import Image
img = Image.open('cave.jpg')
for x in range(img.size[0]):
  for y in range(img.size[1]):
    img.putpixel((x//2,y//2),img.getpixel((x,y)))
img.show()

这个成功得到evil,[Level 12]

小结

如果先知道标题的意思,或许思路会更清晰。

Python Challenge Wiki

1. 取出坐标,可以怎样处理呢?

coords = []
for x in range(1,im.size[0],2):
for y in range(0,im.size[1],2):
coords.append( (x,y) )
for x in range(0,im.size[0],2):
for y in range(1,im.size[1],2):
coords.append( (x,y) )
draw = ImageDraw.Draw(im)
draw.point( coords, fill="black" )


使用[PIL.ImageDraw.Draw.point(xy, fill=None)](https://pillow.readthedocs.io/en/4.0.x/reference/ImageDraw.html#PIL.ImageDraw.PIL.ImageDraw.Draw.point)在给定的位置上绘点,fill参数指定颜色。

####2. 反正处理的是二进制数据。
> `img.putdata(list(img.getdata())[0::2])`

将[`Image.getdata(band=None)`](https://pillow.readthedocs.io/en/4.0.x/reference/Image.html#PIL.Image.Image.getdata)返回的序列对象切割后再放回。

####3. 有点意外的方法
使用[`Image.resize(size, resample=0)`](https://pillow.readthedocs.io/en/4.0.x/reference/Image.html#PIL.Image.Image.resize)或[`Image.transform(size, method, data=None, resample=0, fill=1)`](https://pillow.readthedocs.io/en/4.0.x/reference/Image.html#PIL.Image.Image.transform)。两方法都是重整图片。
####[More](http://wiki.pythonchallenge.com/index.php?title=Level11:Main_Page)

你可能感兴趣的:(Python Challenge[11])