使用Python合成gif动图

下载地址:
链接:https://pan.baidu.com/s/1F_UcK-LUzorw182MzYh6pw
提取码:al3m

通常来说,图片比文字更有说服力,所以论文中图片有非常重要的地位。
然而以gif为代表的动图会比单个静态图片更能展示成果,尽管没法放在论文中,可以把多张图片钉在一起快速翻页 ,gif在ppt展示中和表情包制作 中仍大有可为。

为了能在通信原理大作业展示中拿高分,我打算将不同截止频率的滤波器滤波结果合成成一张gif,应该是一个简单的工作,然而上网一搜,这个简单的工作居然还要花钱!

作为一个码农,被其他码农赚到了钱就是对自身技术的侮辱。合成个gif还要花我几十块钱注册会员?
果断掏出Python:

#-*- coding: UTF-8 -*-  
import imageio
import os

def create_gif(image_list, gif_name, myduration):

    frames = []
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    # Save them as frames into a gif 
    imageio.mimsave(gif_name, frames, 'GIF', duration = myduration)

    return

def main():
    # image_list = ['test_gif-0.png', 'test_gif-2.png', 'test_gif-4.png', 
    #               'test_gif-6.png', 'test_gif-8.png', 'test_gif-10.png']
    gif_name = 'output.gif'
    fileList = os.listdir("./")#读取当前文件夹所有文件
    print(fileList) 
    image_list=list()
    print("检测到文件夹下图片:")
    n=len(fileList)
    for i in range(n):
        s=str(fileList[i])
        if s[-4:]==".jpg":#检查后缀
            image_list.append(s)

    print(image_list)                                  #此时的filename是文件夹中文件的名称
    myduration=eval(input("请输入图片间隔(单位:秒)"))
    create_gif(image_list, gif_name, myduration)
    print("制作完成,请查看文件夹下out.gif")

if __name__ == "__main__":
    main()

运行该程序需要安装imageio库,技术人一看就知道是pip install imageio
如果赶时间的话,文章最开头有下载链接,打包成.exe可以直接使用。

参考了这位大佬的博客:点这里

“自己动手,丰衣足食”

你可能感兴趣的:(Python,python)