图像序列帧恢复为GIF动图

导读:本篇文章讲解 图像序列帧恢复为GIF动图,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

需要用到的库有 imageio, os ,pillow库

from PIL import Image
import os
import imageio
def createGif(imagelist, gifName):
    frames = []
    for imageName in imagelist:
        print(imageName)
        if imageName.endswith('.png'):
            print(imageName)
            frames.append(imageio.imread(imageName)) # imread() 读取指定路径的图像,append 叠加矩阵
    imageio.mimsave(gifName, frames, 'GIF', duration=0.8)  # duration 帧时长
    return
#裁剪函数--统一大小
def clipPic():
    oldPics=""
    files = os.listdir("d:\\btmcXg")  # 打开文件路径下的所有资源,并返回一个列表对象(文件夹下的文件名称)
    for img in files:
        oldPic = Image.open("d:\\btmcXg\\{}".format(img))
        newPic = oldPic.resize((440,440))
        newPic.save("d:\\btmcXgNew\\{}".format(img))

def main():
    clipPic()
    path = 'd:\\btmcXgNew'  # 存放PNG图片文件夹位置
    gifName = 'd:\\btmcXgNew\\create.gif'  # 生成gif的名称
    files = os.listdir(path) # 打开文件路径下的所有资源,并返回一个列表对象(文件夹下的文件名称)
    imagelist = []
    # 遍历并且拼接每个文件路径-->列表对象
    for img in files:
        cd=os.path.join(path,img)
        imagelist.append(cd)
    print(imagelist)
    createGif(imagelist, gifName)

if __name__ == "__main__":
    main()

 imageio库
    mimsave()方法主要有4个参数,
        第1个参数 url是要保存的GIF文件全路径名称,包括后缀名.gif;
        第2个参数 ims是图片列表;
        第3个参数 是保存类型,设置为字符串’GIF’;
        第4个参数 duration为每张图片播放持续时间,单位为秒。

还有很多参数可以参考https://imageio.readthedocs.io/en/stable/index.html

 imread()方法,读取指定路径的图像

os库

os,listdir() 列出某目录下所有的目录和文件。
os.path.join(path,*paths) 组合path和paths,返回一个字符串

这是我随便挑了几张图测试的效果

图像序列帧恢复为GIF动图

 这是动图文件–中间有个图像被拉扁了(这块儿是我有的一些图原本就是透明的png,所以会黑)

图像序列帧恢复为GIF动图

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/105206.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!