python制作gif 以及从gif中获得图片

先介绍python制作gif:

在用遗传算法的时候,想把种群进化过程中的接的分布动态的展示出来,所以就想到了制作gif,展示的时候直接贴到PPT里面就行,在网上找到一个gif在线制作的网站,不过那个网站体验极差,居然不能调整用于生成gif的图片顺序,之后突然想到之前看过一篇微信公众号文章介绍过python可以制作gif, 搜了一下果然找到多:

制作gif的图片是在matlab仿真程序中生成保存的:

gif转换代码:

import imageio, os
images = []
base_path = r'C:\Users\18811\Desktop\graph'
path = os.listdir(base_path) # 读取文件夹下的图片
filenames = sorted(path, key=lambda x: int(x.split('.')[0])) # 对文件按照文件名进行排序
print(filenames)
for filename in filenames:
images.append(imageio.imread(os.path.join(base_path, filename)))
imageio.mimsave(os.path.join(base_path, 'res.gif'), images, duration=1) # duration设置gif的间隔时间

生成的gif:

看起来效果还可以哦

-------------------------------------------------------分割线------------------------------------------------------

从gif中获取图片:

代码:

from PIL import Image
import sys
import os
def image_process(gif_path, save_path):
try:
im = Image.open(gif_path)
except IOError:
print("Load gif failed")
sys.exit(1)
cnt = 1
mypalette = im.getpalette() # 调色板
try:
while True:
im.putpalette(mypalette)
new_image = Image.new('RGBA', im.size)
new_image.paste(im)
new_image.save(os.path.join(save_path, str(cnt)+'.png'))
cnt = cnt + 1
im.seek(im.tell() + 1)
except EOFError:
pass
gif = r'C:\Users\18811\Desktop\graph\res.gif'
save = r'C:\Users\18811\Desktop\graph\12'
image_process(gif, save)

生成的图片:

实际生成的图片质量不高

 

posted @   Alpha205  阅读(157)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示