Python学习笔记-根据图片生成GIF动图

Python学习笔记-根据图片生成GIF动图


文章目录

  • Python学习笔记-根据图片生成GIF动图
  • 前言
  • 一、引用的库说明
  • 二、具体实现
    • 1.引入库
    • 2.获取指定格式的图片
    • 3.转换图片格式
    • 4.使用imageio生成动图
    • 5.生成动图
  • 总结


前言

上面的动图就是根据很多张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图片。

你可能感兴趣的:(python,python,学习,笔记)