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

2020-11-27  本文已影响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上使用时经常报错,这是另一个让我放弃该方法的原因。

上一篇 下一篇

猜你喜欢

热点阅读