Python学习笔记-根据图片生成GIF动图
前言
上面的动图就是根据很多张jpg格式的图片通过Python程序合并而成。
一、引用的库说明
PIL(Python Imaging Library):一个用于图像处理的Python库,它提供了广泛的图像操作功能。安装命令:
pip install pillow
imageio:一个用于读取和写入图像数据的Python库。它提供了一个简单且统一的接口,可以读取和保存多种格式的图像数据。安装命令:
pip install imageio==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
二、具体实现
1.引入库
代码如下:
import imageio
from PIL import Image
import os
2.获取指定格式的图片
代码如下:
def get_image_list(image_end):
"""
获取图片列表
:param image_end: 图片的后缀名
:return:返回符合后缀名的图片泪飙
"""
current_dir = os.getcwd() # 获取当前工作目录的路径
files = os.listdir(current_dir) # 获取路径下的文件及文件夹
image_files = []
for file in files:
# 循环取出路径下符合图片后缀名的图片文件名
if os.path.isfile(file) and file.lower().endswith(image_end):
image_files.append(file)
return image_files
3.转换图片格式
使用PIL 的Image 将图片格式转换为PNG格式
代码如下:
jpg_list = get_image_list('jpg')
for jpg in jpg_list:
image = Image.open(jpg)
new_image_path = os.path.splitext(jpg)[0]+".png"
# 转换图片格式为PNG再保存
image.save(new_image_path, "PNG")
4.使用imageio生成动图
代码如下:
def create_gif(image_list, gif_name, duration=1):
"""
:param image_list: 原始图片列表 只支持png格式
:param gif_name: 生成的gif文件名 带.gif后缀
:param duration: gif图片时间间隔 默认1s
:return:
"""
frames = []
for image_name in image_list:
frames.append(imageio.imread(image_name))
try:
imageio.mimsave(gif_name, frames, 'GIF', duration=duration)
except Exception as e:
print(e)
return
5.生成动图
代码如下:
image_list = get_image_list('png')
print(image_list)
gif_name = input("请输入新生成git图片文件名:")
duration = 1
create_gif(image_list, gif_name, duration)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了使用PIL 包来修改图片格式,使用imageio生成GIF图片。