美文网首页
Python Challenge[11]

Python Challenge[11]

作者: Recgat | 来源:发表于2017-02-10 16:04 被阅读0次

    [Level 11]


    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]

          本文链接:https://www.haomeiwen.com/subject/lmowittx.html