其他分享
首页 > 其他分享> > 太神奇了!GIF的合成与提取这么好玩

太神奇了!GIF的合成与提取这么好玩

作者:互联网

今天辰哥教大家一个Python**有趣好玩**的小功能:将多张图片**转为GIF**,同时也可以将一个GIF**动图提取**出里面的图片 在开始之前,先来一个**动图开头**(预览) ![](https://www.icode9.com/i/ll/?i=img_convert/4d4f474e487ffb08daa57566a423c24d.gif) # 01、图片转GIF动图 **1、准备工作** 在开始合并前,先明确要转换哪些图片,以及安装对应的Python库 ![](https://www.icode9.com/i/ll/?i=img_convert/5c539369af74a5afa7ca9259add234fe.png) 这里在网上找了9张图片,并存放在img文件夹下,这9张图片一会待转换为GIF动图。 ```nginx pip install imageio ``` 通过上面的命令安装imageio库,该库功能是将多张图转为GIF。 导入相应的库 ```python import imageio import os import os.path as osp ``` **2.转换** 读取img文件夹下的所有图片,并通过imageio读取图片内容。 ![](https://www.icode9.com/i/ll/?i=img_convert/3dd540e0da9154ad5eb7b206dbb92a68.png) 转换并保存为**chenge.gif** ![](https://www.icode9.com/i/ll/?i=img_convert/ab945a75f12662916c4233690ed96e5c.png) 其中的duration = 1 / fps ,也就是说duration**越大**,动图变化**越慢**,当前duration是**0.1**,其结果如下: ![](https://www.icode9.com/i/ll/?i=img_convert/470b87c8e65430d1ae791359c3ce30c4.gif) ![](https://www.icode9.com/i/ll/?i=img_convert/0af0ce3f4c1fe836e7983cee6fdb76bf.png) 当前duration是**0.5**,其结果如下: ![](https://www.icode9.com/i/ll/?i=img_convert/115d754d6880aacf8c1e91e58636d0b7.gif) # 02、GIF提取图片 **1.准备工作** 导入PIL库 ```javascript from PIL import Image ``` 待提取的gif(这里使用上面保存的chenge.gif) ![](https://www.icode9.com/i/ll/?i=img_convert/6aed6baf90f14519ae1aaab6c8d67e27.gif) **2.提取** ![](https://www.icode9.com/i/ll/?i=img_convert/8a2628479c0eec993a4c1fdaaa8ebdf2.png) 这里将chenge.gif提取图片,保存到**gif-to-pic**文件夹中,并从**0.jpg**开始命名 ![](https://www.icode9.com/i/ll/?i=img_convert/3e7e989885f5758b289da7dcab6fac1e.gif) ![](https://www.icode9.com/i/ll/?i=img_convert/1c673fd80fe18d763b97e384961fde32.png) 可以看到gif动图里面的图片已成功提取。 # 03、小结 本文讲解了如何将多张图片转为GIF,同时也讲解了通过一个GIF动图提取出里面的图片。为了方便大家练习,辰哥已将**代码模块化**。 ![](https://www.icode9.com/i/ll/?i=img_convert/5b3a2a8fe4f9d1e17f49f4783e83abca.png) 为了大家方便学习,辰哥已经把本文的**完整源码**和对应的**图片及动图**上传,需要通过公众:**gifpic** 最后,不明白的地方可以在下方留言,一起交流。

标签:convert,cn,img,blog,GIF,csdnimg,https,好玩,神奇
来源: https://blog.51cto.com/u_11949039/2900309