python分离gif_python 将GIF拆分成图片方法

运维开发网 https://www.qedev.com

2020-07-17 17:30

出处:网络作者:运维开发网整理

import os

from PIL import Image, ImageSequence

def parseGIF(gifname):

# 将gif解析为图片

# 读取GIF

相关专题:迭代器import os

from PIL import Image, ImageSequence

def parseGIF(gifname):

# 将gif解析为图片

# 读取GIF

im = Image.open(gifname)

# GIF图片流的迭代器

iter = ImageSequence.Iterator(im)

# 获取文件名

file_name = gifname.split(".")[0]

index = 1

# 判断目录是否存在

pic_dirct = "imgs/{0}".format(file_name)

mkdirlambda = lambda x: os.makedirs(

x) if not os.path.exists(x) else True # 目录是否存在,不存在则创建

mkdirlambda(pic_dirct)

# 遍历图片流的每一帧

for frame in iter:

print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))

frame.save("imgs/%s/frame%d.png" % (file_name, index))

index += 1

# frame0 = frames[0]

# frame0.show()

# 把GIF拆分为图片流

imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]

# 把图片流重新成成GIF动图

imgs[0].save(‘out.gif‘, save_all=True, append_images=imgs[1:])

# 图片流反序

imgs.reverse()

# 将反序后的所有帧图像保存下来

imgs[0].save(‘./reverse_out.gif‘, save_all=True, append_images=imgs[1:])

if __name__ == "__main__":

parseGIF("03.gif")

分享到

0

0

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值