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

使用Python合成gif动图

程序员文章站 2022-03-24 19:38:27
...

下载地址:
链接: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