10行python代码制作笑死人不偿命的倒放gif

2020-09-08 11:42:11 浏览数 (1)

现在网络平台上各种有很多倒放视频和倒放gif,其中有些非常的有意思,例如以下图片,慎点,笑死人行哥不偿命

例如

又例如

双例如

又双例如

这些搞笑的gif都是将正常的流畅通过倒放产生违背常理的效果来吸引眼球,不过制作起来却非常简单,原理就是将gif图片拆分出来每一帧,再将拆分的每一帧图片反向排序保存到gif里即可,只需要十行代码,源码如下:

代码语言:javascript复制
# 公众号:一行数据
from PIL import Image, ImageSequence
# 读取 GIF
im = Image.open("1.gif")
# GIF 图片流的迭代器
iter = ImageSequence.Iterator(im)
index = 1
# 遍历图片流的每一帧
for frame in iter:
    print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))
    frame.save("./images/img%d.png" % index)
    index  = 1
# 把 GIF 拆分为图片流
imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]
# 图片流反序
imgs.reverse()
# 将反序后的所有帧图像保存下来
imgs[0].save("reverse.gif", save_all=True, append_images=imgs[1:])

最后图片制作的结果如下

原图.gif

点击查看倒放.gif

0 人点赞