欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python通过imageio模块实现GIF动图制作

程序员文章站 2024-01-17 11:59:34
...

1.python语法实现解析

使用imageio实现动图制作主要分为两步:1.筛选要制作动图的图片,2.通过imageio.mimsave()函数实现GIF制作。

1.1 筛选制作动图的图片

代码:

def seek_imagename(suffix):
    image_list=[]
    allfile_name=os.listdir()
    for i in allfile_name:
        if os.path.splitext(i)[1] == suffix:
            image_list.append(i)
    print(image_list)
    return image_list

通过函数os.path.splitext()将需要的图片通过后缀筛选出,返回图片名组成的list。

1.2 制作动图

代码:

def create_gif(image_list,gif_name,duration=1.0):
    frames=[]
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    imageio.mimsave(gif_name,frames,'GIF',duration=duration)
    return

函数imageio.mimsave(gif_name,frames,‘GIF’,duration=duration),gif_name是生成的动图名,frames为图片list,duration为GIF的每帧时间。

2.演示

代码:

import imageio
import os

os.chdir('D:\python\work\动态图像研究')


def create_gif(image_list,gif_name,duration=1.0):
    frames=[]
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    imageio.mimsave(gif_name,frames,'GIF',duration=duration)
    return

def seek_imagename(suffix):
    image_list=[]
    allfile_name=os.listdir()
    for i in allfile_name:
        if os.path.splitext(i)[1] == suffix:
            image_list.append(i)
    print(image_list)
    return image_list

def main():
    image_list=seek_imagename('.png')
    gif_name='love.gif'
    duration=0.08
    create_gif(image_list,gif_name,duration)

if __name__ == "__main__":
    main()

输出结果:
python通过imageio模块实现GIF动图制作

相关标签: python