加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python 将GIF拆分成图片方法

发布时间:2020-12-20 10:17:01 所属栏目:Python 来源:网络整理
导读: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 #
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,append_images=imgs[1:])


if __name__ == "__main__":
    parseGIF("03.gif")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读