美文网首页
使用pillow将文件夹内静态图合成gif

使用pillow将文件夹内静态图合成gif

作者: 水跃君的叹息 | 来源:发表于2020-11-30 10:24 被阅读0次

    首先采用循环读取文件夹内文件的方法,找到文件夹内所有图片文件。

    
    from PIL import Image, ImageDraw
    
    path='~\\your filepath'
    
    filenames=[]
    
    for files in os.listdir(path):
    
        if files.endswith('jpg') or files.endswith('jpeg') or files.endswith('png'):
    
            file=os.path.join(path,files)
    
            filenames.append(file)
    
    #print(filenames) 如果希望能直接查看读取是否正确,可以print出来看
    
    

    后续生成gif的方法参考了python图片生成gif方法汇总这篇文章的第一种方法。这篇文章一共介绍了两种方法,在我的实践中没有存在只能黑白的情况,两种方法都可以生成彩色动图。

    
    #one method using PIL and pillow
    
    # Create the frames
    
    frames = []
    
    for image_name in filenames:
    
        im = Image.open(image_name) # 读取方式上存在略微区别,由于是直接读取数据,并不需要后续处理
    
        im = im.resize((1041, 1320),Image.ANTIALIAS) #调整图像至统一大小,resize里面的图像大小需要自行设定
    
        frames.append(im)
    
    # Save into a GIF file that loops forever
    
    frames[0].save('my2.gif', format='GIF', append_images=frames[1:], save_all=True, duration=500, loop=0)
    
    

    动图制作完成。

    其实原本我使用了images2gif库,但是这个方法需要图片大小必须完全相同,我的原始图大小是不一样的,当开始尝试resize图片大小时,我查到了PIL的方法python处理图像--调整图片大小,所以我放弃了images2gif,转而使用PIL。

    另外images2gif存在版本不兼容问题,在python3上使用时经常报错,这是另一个让我放弃该方法的原因。

    相关文章

      网友评论

          本文标题:使用pillow将文件夹内静态图合成gif

          本文链接:https://www.haomeiwen.com/subject/rdexwktx.html