美文网首页
Python Challenge[22]

Python Challenge[22]

作者: Recgat | 来源:发表于2017-02-18 01:17 被阅读0次

[Level 22]


Title: emulate

源码提示

or maybe white.gif would be more bright

下载的white.gif是200*200的黑色图片。尝试的时候范围弄错,没辙了。

from PIL import Image,ImageDraw
img = Image.open('white.gif')
new = Image.new('RGB', img.size)
draw = ImageDraw.Draw(new)
cx, cy = 0, 100
for frame in range(img.n_frames):#133
  img.seek(frame)
  left, upper, right, lower = img.getbbox()
  dx, dy= (left - 100)/2, (upper - 100)/2
  if dx == dy == 0:
    cx, cy = cx+30, 100
  cx, cy = cx+dx, cy+dy
  draw.point([cx, cy])
new.show()

图片是动态图,每一帧都有一个独特的点,围绕在坐标(100, 100)附近。22关图片里是操纵杆。那么向相对(100, 100)的点的方向画线,回到原点平移一段距离后再画线(保证所画的线不重叠),最终得到5组图形,收获bonus[Level 23]

小结

感觉脑子不够用了。

  1. Image.getbbox()返回图像非零区域的边框。
  2. Image.seek(frame)定位文件的帧。
  3. PIL.ImageDraw.Draw.point(xy, fill=None)在给定的坐标上绘点。

Python Challenge Wiki

img.n_frames相当于ImageSequence.Iterator(img),获取帧数。

More

相关文章

  • Python Challenge[22]

    [Level 22] Title: emulate 源码提示 or maybe white.gif would b...

  • Python挑战:00~03关

    Python Challenge Python Challenge 00 网址: http://www.pytho...

  • Python挑战:04-05关

    Python Challenge Python Challenge 04 现在,我们来挑战第四关,从第三关的结果,...

  • The Python Challenge(5)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面源码提示: 再点击页面图片显示: 可知是需要...

  • The Python Challenge(8)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 页面和源码中无任何提示,但图片中有一条很明显的灰度线...

  • The Python Challenge(9)

    问题链接 问题链接如下: 答案链接 答案链接如下: 登陆用户名密码为huge和file。 解题思路 阅读源码有如下...

  • The Python Challenge(2)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 将页面给定的字符串根据给定规则进行替换即可,规则如下...

  • The Python Challenge(3)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面提示: 阅读源码,有如下内容: 编写代码从中...

  • The Python Challenge(4)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面提示: 并结合页面源码中的内容,有如下代码:...

  • The Python Challenge(6)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面源码提示: python中发音类似的术语有p...

网友评论

      本文标题:Python Challenge[22]

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