《Python实例》自己用Python写个gif生成工具,Pillow 真TM简单!

简介: 前几天想做个gif 图片,在网上搜了一阵没有找到合适的gif的制作软件,最后在群里问了下群里的同学推荐了一款gif 软件叫gifCam,用起来还不错,只有几百K的大小,我想我是不是也可以做一个gif制作器,因此今天就是主要为这件事而做

6ed0666d1a30445494f15dfeabd0b6b0~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


这是我参与8月更文挑战的第3天**,活动详情查看:8月更文挑战**


前几天想做个gif 图片,在网上搜了一阵没有找到合适的gif的制作软件,最后在群里问了下群里的同学推荐了一款gif 软件叫gifCam,用起来还不错,只有几百K的大小,我想我是不是也可以做一个gif制作器,因此今天就是主要为这件事而做。

废话不多说直接进入技术阶段,在python中通过搜索找到了一个叫Pillow 的图形库,在研究了一番之后,发现能解决自己的问题。


1、需求分析 我的需求就是能录制gif 图片,因为第一次做这种东西,所以需要分解需求。


步骤一:我需要能录屏,也就是截屏功能,将当前屏幕保存,技术方案暂时没定,延期!


步骤二:我需要能把截屏的图片进行合并,合成gif图片,已经找到合适的库,立即做。


步骤三:将python文件进行界面友好化,非核心功能,延期。


整个的核心功能是对图片进行合成,所以我今天要做的就是先找一些图片进行合成为gif


2、技术分析 我机器上的环境是python3.8


需要的包是Pillow,注意需要匹配你的python版本,建议使用下面的方式进行安装


3、环境安装 控制台输入下面的命令:


pip install Pillow 或者


pycharm中File -> Settings -> 选择+ 号->在搜索框中输入需要安装的包Pillow ->选择需要安装的包 install Package ->等待 安装完成。参考下面的图

c0e07f93587946b5826000bf2792ed5f~tplv-k3u1fbpfcp-zoom-crop-mark_1304_1304_1304_734.webp.jpg

4、源码展示: show me code!


# coding:utf-8
import os
from PIL import Image
# author :香菜
# 制作gif
imgFolderPath = "E:\\child\\bug\\WxBot\\xin\\beauty"
fileList = os.listdir(imgFolderPath)
firstImgPath = os.path.join(imgFolderPath, fileList[0])
im = Image.open(firstImgPath)
images = []
for img in fileList[1:]:
   imgPath = os.path.join(imgFolderPath, img)
   images.append(Image.open(imgPath))
im.save('beauty.gif', save_all=True,append_images =images,loop = 0,duration=2000)
复制代码


代码解读:


imgFolderPath :是图片所在的文件夹


os.listdir(imgFolderPath) 列出所有的文件名,返回列表


firstImgPath = os.path.join(imgFolderPath, fileList[0]) 拼接首个图像的绝对地址


im = Image.open(firstImgPath) 将第一个文件作为第一帧


for img in fileList[1:]: 遍历剩下的所有图片,读取加入images 列表


im.save('beauty.gif', save_all=True,append_images =images,duration=2000) 当前功能的核心函数


beauty.gif 是要保存的gif 文件全名


save_all 保存所有的图像


duration=2000 每帧图片播放2000毫秒


loop = 0 GIF图片一直重复循环( loop=0,如果设置为 1,则循环1次,设置为2则循环2次,以此类推)


执行上面的代码,可以看到在py所在的目录下生成了beauty.gif,可以用看图软件看下,完美


5、总结:


1.存在的问题:我放入的图形大小不一样,所以导致后面如果出现比较小的图形遮盖不住前面的图像


2.这只是简单的实现了核心需求,还有其他的周边功能需要完善


3.记住核心功能代码,并理解,下次遇到类似的问题手到擒来


im.save('beauty.gif', save_all=True,append_images =images,loop =0,duration=2000) 4.遍历文件夹下所有文件

目录
相关文章
|
4月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
5月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
245 92
|
4月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
366 3
|
5月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1123 1
|
4月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
943 0
|
5月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
5月前
|
安全 API 数据安全/隐私保护
|
5月前
|
Java API 数据安全/隐私保护
淘宝一键上货发布软件,淘宝批量发布上架工具, 淘宝批量上架脚本【python】
这个Python脚本实现了以下功能: 完整的淘宝API调用封装
|
5月前
|
机器人 数据安全/隐私保护 Python
淘宝批量发货发布工具, 淘宝批量上传商品软件, 淘宝批量上架软件【python】
使用Selenium实现自动化操作淘宝卖家后台 支持三种核心功能
|
5月前
|
Linux 数据安全/隐私保护 Python
一键修改电脑机器码, 软件机器码一键修改工具, 机器码重置工具【python】
该工具实现了完整的机器码生成、加密、验证功能 使用系统硬件信息生成唯一机器码

推荐镜像

更多