需要用到的库有 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,所以会黑)