PIL实现GIF倒放
2019-04-20 本文已影响0人
halfempty
1. 前言
玩社交软件, 经常出现倒放怪
不得不承认, 倒放有时给人更新奇的感觉
2. 知识点
GIF图由一帧帧的图片组成, 连续播放即形成动画效果
倒放的本质是将GIF的帧拆分, 倒序排列, 再组合
所以感兴趣的朋友, 可以任意排列的组合, 或者抽取多张图片的元素拼接, 以达到意想不到的效果
- Image.seek(0), 类似读文件, 快速定位指定索引的帧
- ImageSequence.Iterator(im), 一帧帧迭代
3. 源码实现
from PIL import Image, ImageSequence
import uuid
filename = '/home/lion/Pictures/a25d7c22161ed3acc665a94d15845fac.gif'
im = Image.open(filename)
ims = [m.copy() for m in ImageSequence.Iterator(im)]
ims = ims[::-1]
out = '{}.gif'.format(uuid.uuid1())
ims[0].save(out, save_all=True, append_images=ims[1:])
4. 效果图
a25d7c22161ed3acc665a94d15845fac.gif8a2426e2-62fa-11e9-a65f-20689d1ba603.gif