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

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

作者: 水跃君的叹息 | 来源:发表于2020-11-27 14:20 被阅读0次

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

    ```python

    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方法汇总](https://blog.csdn.net/monotonomo/article/details/80586194)这篇文章的第一种方法。这篇文章一共介绍了两种方法,在我的实践中没有存在只能黑白的情况,两种方法都可以生成彩色动图。

    ```python

    #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处理图像--调整图片大小](https://www.jianshu.com/p/804081e4d3d1),所以我放弃了images2gif,转而使用PIL

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

    相关文章

      网友评论

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

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