Python:将GIF动图分成单帧图片

Python:将GIF图片分解为多张图片

  • 准备工作

    1. 准备一张GIF图片

  1. 安装 Python3

  2. 安装 PIL

  • Python实现

    from PIL import Image
    import os
    import random
    
    
    class GIFTest:
    
        def __init__(self, file_name):
            self.file_name = file_name      # 传入的文件名
            self.dir_name = self.file_name[:-4]     # 根据文件名创建存放分帧图片的文件夹
            self.gif_path = os.path.join(os.path.dirname(__file__), file_name)  # 拼接图片文件的完整路径(仅限同一文件夹内)
            self.make_dir()
    
        def make_dir(self):
            """用于创建存放分帧图片的文件夹"""
            try:
                os.mkdir(self.dir_name)
            except FileExistsError:
                print('<%s>文件夹已存在' % self.dir_name)
                self.dir_name += str(random.randint(0, 10))
                os.mkdir(self.dir_name)
    
        def framing_test(self):
            """GIF图片分帧"""
            img = Image.open(self.gif_path)
            try:
                while True:
                    curr = img.tell()
                    name = os.path.join(self.dir_name, '第%s帧.png' % str(curr + 1))
                    img.save(name)
                    img.seek(curr+1)
            except Exception as e:
                pass
    
    
    if __name__ == '__main__':
        GIFTest('test.gif').framing_test()
    
  • 最终结果



Key words

GIF、GIF图片分帧、PIL、GIF动图分成单帧图片

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜莺2517阅读 128,206评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 7,505评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,879评论 28 54
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,779评论 2 9

友情链接更多精彩内容