jpg图片批量生成gif图片

需求

每个文件夹里面有三张图片,每个文件夹需要生成一个gif图片,测试自己一个人在网上自己一个一个的生成下载。趁着有时间然后想着帮忙写个python试一下,然后尝试开始写。写了一个小时,功能已经完成了,不考虑效率什么的,仅为了工作方便,记录下来。

源码备份

# -*- coding: UTF-8 -*-
 
import os
import imageio



# 遍历文件夹
def walkFile(file):
    for root, dirs, files in os.walk(file):

        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list

        # 遍历文件
        #for f in files:
        #    print(os.path.join(root, f))

        # 遍历所有的文件夹
        for d in dirs:
            #print(dirs)
            #print(os.path.join(root, d))
            #print(d)
            pretreatment(os.path.join(root, d), d)


def create_gif(image_list, gif_name):
 
    frames = []
    for root, dirs, files in os.walk(image_list):
        for f in files:
            print(image_list + f)
            if f.endswith('.jpg'):
                frames.append(imageio.imread(image_list + f))
                #frames.append(imageio.imread(image_name))
        imageio.mimsave(gif_name, frames, 'GIF', duration = 1)
    #print(image_list)
    #for image_name in image_list:
    #    print(image_name)
    #    if image_name.endswith('.jpg'):
    #        print(image_name)
    #        frames.append(imageio.imread(image_name))
    #Save them as frames into a gif
    #print(gif_name)
    #print(frames)
    #imageio.mimsave(gif_name, frames, 'GIF', duration = 1)
 
    return
 
def pretreatment(path, gif_name):
 
    #path=r'C:/Users/1996d/Desktop/gif/3countb/'
    #image_list=[ path+img for img in  os.listdir(path)]
    gif_name = gif_name + '.gif'
    path_ok = (path + '/').replace('\\','/')
    #print(path_ok)
    create_gif(path_ok, gif_name)
 
if __name__ == "__main__":
    #main()
	walkFile("C:/Users/1996d/Desktop/gif")

猜你喜欢

转载自blog.csdn.net/arunboy/article/details/103157448