图像序列帧恢复为GIF动图

简介: 使用Python的imageio库将图像序列帧恢复为GIF动图,支持自定义持续时间和尺寸调整。

需要用到的库有 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,返回一个字符串

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

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

相关文章
|
编解码 算法 文件存储
浅谈动图文件格式 - GIF
介绍动图的文件格式,及其优劣
2133 0
浅谈动图文件格式 - GIF
|
机器学习/深度学习 计算机视觉
【图片操作】提取GIF的图片帧
gif是我们日常生活中常用的一种图片,它介于视频和图片之间。我们可以用图片的内存体验到一些视频的感觉。但是有时候我们会想把gif的图片全部提取出来,今天我们就来实现一下这个操作。
466 0
|
缓存 监控 前端开发
调用摄像机播放画面,并且实现录制GIF动图预览和下载
调用摄像机播放画面,并且实现录制GIF动图预览和下载
|
数据安全/隐私保护
生活中常用的图片去水印方法有哪些呢
有时候我们想换头像/微信背景墙了 是不是第一时间想到的是去某书逛逛,有时候看到有些博主分享的壁纸或者表情包等,忍不住的想保存下来,很多人应该还不知道如何下载吧,今天分享我的三个操作方法
【图片操作】给图片添加滤镜
现在我们都喜欢给图片添加滤镜,现在很多相机也自带了许多滤镜。我们可以在拍照的时候选择需要的滤镜。但是有时候我们需要给大量图片添加同样的滤镜,这个时候手动添加就非常麻烦了。为了方便,我们可以使用程序来帮我们完成添加滤镜的操作。
304 0
|
计算机视觉
【图片操作】生成动态图片
动态图片我们使用的还是比较频繁的,平时的表情包有很多动图。今天我们要做的就是自己制作动态图片,其实就是将视频转换成动图,操作起来非常简单。下面我们就来看看如何实现吧。
619 0
|
Linux C语言 数据安全/隐私保护
C语言编程: 在BMP图片上添加图片水印
C语言编程: 在BMP图片上添加图片水印
499 0
C语言编程: 在BMP图片上添加图片水印
|
存储 C#
[开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧
原文:[开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧   不知不觉又半个月没有更新博客了,今天终于抽出点时间,来分享一下前段时间的成果。   在网上,我们经常看到各种各样的图片,尤其是GIF图片的动态效果,让整个网站更加富有表现力!有时候,我们看到一些比较好看的GIF图片或者一些奇特的Gif图片,我们想要停留在某一帧看的清楚一点或者了解这个Gif动画到底是怎么实现的,怀着这种好奇的心理,我们来看一下,今天的开源项目,用WPF来实现GIF图片的预览和分离和保存。
1219 0
|
存储 编解码
压缩gif图片尺寸
平时写博客, 为了效果的生动形象, 经常需要嵌入一些gif图片, 但mac的retina显示器分辨率高, 录制出的gif图片往往很大,同时简书限制gif图片不能超过10M, 我在网上查了很多调整gif尺寸的方法, 大多是一些在线转换的方法, 但而且...
2815 0
gif图片录制-LICEcap
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396513 官网:http://www.cockos.com/licecap/ 这个工具挺好用的,界面简单,代码开源。
918 0

热门文章

最新文章