想着做一个电子相册,然后在网上找了一份代码调通了。保存在CSDN便于以后在别的电脑上面copy。
note:
1-代码里面分resize图片和保持原图片大小两种情况
(1)保持原图片大小这种情况会出现以下问题:如果指定文件夹里面的图片长宽不一,生成出来的GIF图片会有重叠,即可能出现下一张图片出现的时候无法完全覆盖上一张图片,影响美感。故建议放入指定文件夹里面的图片大小一致。
(2)为了避免这种问题,在代码里面加了一个resize函数将图片大小全部resize到指定大小,但是这样可能会导致图片比例严重失调。
所以最后把这两种情况分开来写,灵活运用。
2-tqdm 自己觉得挺有意思的
#for img in fileList[1:]: #不显示读条
for img in tqdm(fileList[1:],‘生成GIF中’): #显示读条

# -*- coding: utf-8 -*-
"""
Created on Fri Aug  6 09:54:38 2021

@author: Neo
功能:gif生成工具
菜鸟Python实战-01将指定文件夹中的图片生成GIF图片
Reviewed:OK  2021-08-06
"""
import os
from PIL import Image
from tqdm import tqdm#进度条

def CreateGIF(imgFolderPath, width, height, Resize_flag = 0,loop_num = 0,  duration_num = 1000):
    fileList = os.listdir(imgFolderPath)
    firstImgPath = os.path.join(imgFolderPath, fileList[0])
    if(0 == Resize_flag):
        im = Image.open(firstImgPath)
    else:
        im = Image.open(firstImgPath).resize((width, height),Image.ANTIALIAS)          #保证所有的图片最终出来是相同的size
    
    images = []
    #for img in fileList[1:]:                   #不显示读条
    for img in tqdm(fileList[1:],'生成GIF中'):  #显示读条
        imgPath = os.path.join(imgFolderPath, img)
        if(0 == Resize_flag):    
            images.append(Image.open(imgPath)) 
        else:
            images.append(Image.open(imgPath).resize((width, height),Image.ANTIALIAS))  #保证所有的图片最终出来是相同的size
       
    im.save('GIF_Result.gif', save_all=True,append_images =images, loop = loop_num, duration = duration_num)


if __name__ == "__main__":
    imgFolderPath = ".\\Input_Space"
    Resize_flag = 0   #判断是否需要resize图片的标志位 0-不需要resize,1-需要resize
    width  = 500      #期望resize的图片宽度
    height = 300      #期望resize的图片高度
    loop_num = 0
    duration_num = 2000 
    CreateGIF(imgFolderPath, width, height,Resize_flag,loop_num, duration_num)
"""
imgFolderPath :是图片所在的文件夹
os.listdir(imgFolderPath) 列出所有的文件名,返回列表
firstImgPath = os.path.join(imgFolderPath, fileList[0]) 拼接首个图像的绝对地址
im = Image.open(firstImgPath)  将第一个文件作为第一帧
for img in fileList[1:]: 遍历剩下的所有图片,读取加入images 列表
im.save('beauty.gif', save_all=True,append_images =images,duration=2000) 当前功能的核心函数
Result.gif 是要保存的gif 文件全名
save_all 保存所有的图像
duration=2000 每帧图片播放2000毫秒
loop = 0  GIF图片一直重复循环
( loop=0,如果设置为 1,则循环1次,设置为2则循环2次,以此类推)
"""

结果展示:

指定文件的图片

python将图片转换成excel python图片转gif_Image


生成的GIF图片

python将图片转换成excel python图片转gif_python将图片转换成excel_02

后续
只要把想要做电子相册的照片整理好,就可以生成啦!