今天在写文章的时候,需要合成一张Gif动图,结果之前一直使用的在线Gif工具居然要收费了,否则就得加水印,而且水印巨大无比,挡住主要内容了。于是就去github上找了一圈,结果没有找到理想的工具,基本上是使用文档不清晰,或者不支持自定义输入参数。不过也没白逛,扫了一眼代码,发现生成Gif的方法非常简单,所有就决定自己写了一个。

代码已上传到github: https://github.com/youlanhai/makegif

用法

python makegif.py 后面输入图片文件路径或文件夹,即可合成gif图片。本脚本支持python2和python3,需要先安装Pillow插件: pip install Pillow。Windows用户还可以直接把图片路径或文件夹,拖拽到makegif.bat上面即可。

用法1:输入多个图片,自动在图片父目录下生成一张input.gif

python makegif.py input/1.png input/2.png input/3.png

用法2: 输入图片文件夹,工具会收集input文件夹下的所有图片,然后合成gif,输出为input.gif

python makegif.py input

完整参数:

usage: makegif.py [-h] [-d DURATION] [-o OUTPUT] [-f FILTERS] [-s SIZE][-l LOOP]inputs [inputs ...]创建gif图片positional arguments:inputs                输入文件路径,或文件夹。支持混合输入optional arguments:-h, --help            show this help message and exit-d DURATION, --duration DURATION时间间隔。默认200ms-o OUTPUT, --output OUTPUT输出路径。如果未指定,则使用第一个图片所在的文件夹作为名称。如果文件夹为当前路径,则输出名称为out.git-f FILTERS, --filters FILTERS用于在文件夹中搜索指定的后缀文件。默认: png,jpg,bmp-s SIZE, --size SIZE  输出图片大小。格式: 640x480; 或者640x,仅限定宽度为640,高度等比缩放;或者x480,仅限定高度为480,宽度等比缩放-l LOOP, --loop LOOP  循环次数。默认0,表示无限循环

实现说明

核心点就一个函数,调用PIL.Image的save方法,传入gif需要的参数即可:

images = [PIL.Image.open(path) for path in inputs]
images[0].save(output_path, save_all = True, duration = 200, loop = 0, append_images = images[1:])
参数 说明
output_path 输出路径,必须是.gif后缀
save_all 保存所有后续的序列帧。必须为True
duration gif播放间隔,单位为毫秒
loop 播放的循环次数。0表示无限循环;不传表示不循环
append_images 后续的序列帧

脚本剩余功能主要是参数处理,和路径处理。

参考

pillow文档-PIL.Image.save

python实现GIF生成工具相关推荐

  1. python pydoc-文档生成工具(汇总tcy)

    pydoc-文档生成工具   2018/9/8 ---------------------------------------------------------------------------- ...

  2. python文档生成工具 sphinx 简介

    目录 简介 sphinx-build用法 Makefile选项 调用sphinx-apidoc 原文出处 简介 Sphinx是一个工具,她能够轻易地创建智慧和优雅的文档,她是出自Georg Brand ...

  3. python制作网页系统_使用python静态网页生成工具pelican快速在github上部署网站博客...

    简介 Pelican用Python编写的静态站点生成器.亮点: 使用reStructuredText或Markdown格式直接用编辑器编写内容 简单的CLI工具来(重新)生成站点 易于与分布式版本控制 ...

  4. python自带的文档生成工具,Python文档生成工具pydoc

    在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介 ...

  5. python文档生成工具_pydoc --- 文档生成器和在线帮助系统 — Python 3.9.1rc1 文档

    pydoc --- 文档生成器和在线帮助系统¶ The pydoc module automatically generates documentation from Python modules. ...

  6. python文档生成工具pydoc

    为了找到对象及其文档内容,pydoc 会导入文档所在的模块. 因此,任何模块层级的代码都将被执行. 请使用 if name == 'main': 语句来确保一个文件的特定代码仅在作为脚本被发起调用时执 ...

  7. python的字典生成工具

    前言:命运,依旧在自己手中! 安装pydictor git clone https://github.com/LandGrey/pydictor 常用使用命令,社工学 --sedb 其中option的 ...

  8. python 代码生成器 oc_iOS 移动端生成工具开发

    原标题:iOS 移动端生成工具开发 之前有写过一个python脚本的生成工具, 通过读取json文件进行代码的生成, 实际操作中部分使用者反映, json文件的可读性不是很好(明显是不熟悉json语法 ...

  9. python doc_Python文档生成工具pydoc使用介绍

    在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介 ...

最新文章

  1. BigMemory系列文章--2.Ehcache快速接入
  2. [转载]细说ASP.NET Windows身份认证
  3. Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)(转)
  4. C语言函数题-P字符串的比较
  5. 数据标记系列——图像分割 Curve-GCN
  6. 郎永淳妻子抗癌4年路:儿子弃读名校陪治病(转)
  7. js对象与this指向
  8. 17.3.13--pycharm2和3的常识问题
  9. perl语言入门:子程序
  10. 软件定义无线电的实时频谱分析仪相关原理介绍(二)——射频,中频和基带信号
  11. 硬件设计18之什么是VGA?
  12. Scala关键字lazy的理解和使用
  13. scratch2.0 求救电话问答
  14. 为什么电脑计算机里没有桌面,为什么电脑开机后桌面上什么都没有?
  15. 今年最受欢迎的14款黑客工具
  16. 机器学习/深度学习/自然语言处理学习路线
  17. HD Tune结合硬盘再生器HDDREG快速修复硬盘错误
  18. DA1458x使用之第一篇——GPIO
  19. 做人不能太腾讯(转帖)
  20. 使用 NGINX 作为 HTTPS 正向代理服务器

热门文章

  1. 2022年危险化学品经营单位安全管理人员考试模拟100题模拟考试平台操作
  2. c语言俄罗斯方块代码及实验报告,c语言俄罗斯方块实验报告.doc
  3. hashcat 破解RAR密码操作使用记录
  4. 笔记:VLAN及交换机处理详细教程(Tagged, UnTagged and Native VLANS Tutorial)
  5. 游戏夜读 | 关于构图的困难
  6. 中值滤波器(Median filter)特性及其实现
  7. LTE学习理解系列——TDD-LTE的TA、GP、TDD开关、覆盖范围、拉远距离的更深入理解
  8. calibre版图验证及寄生参数的提取后仿真
  9. 在VS.NET2008中使用并发布Crystal Reports ActiveX组件
  10. LinkError: post-link script failed for package defaults::qt-5.9.7-vc14h73c81de_0 问题解决