python生成摸头GIF

本篇教程演示了如何使用python的PIL库生成GIF图片

源码已经贴在文中,自行取用

效果演示

运行代码,会让你选择要制作的图片

运行完成后,会在同路径下生成dem.gif

原理

  1. 本源码主要用到PIL库的Image模块
  2. 使用Image模块的相关方法处理每一帧的图片
  3. 存储到GIF列表并生成GIF
  4. 需要先调试好参数

源码

完整代码及素材打包在附件中了,文末下载

环境:python3.7

'''
不需要图形界面的
记得自己删除tk模块相关
并添加图像接收入口 rua("图像路径").add_gif()
''' from tkinter import filedialog
from PIL import Image,ImageDraw
import os,tkinter class rua():
def __init__(self,img_file):
# 载入图片
self.author = Image.open(img_file) def add_png(self,png_d):
# 根据参数重置图片大小
author = self.author.resize((png_d[0],png_d[1] - png_d[2])) # 载入素材
rua_p1 = Image.open(png_d[3]) # 创建背景模板
rua_png1 = Image.new('RGBA',(110,110),(255,255,255,255)) # 使用预定义的参数:jd,合成一帧的样例
rua_png1.paste(author,(110 - png_d[0],110 - png_d[1] + png_d[2]),author)
rua_png1.paste(rua_p1,(0,110 - png_d[1] - png_d[2]),rua_p1)
return rua_png1 def add_gif(self):
# 获取绝对路径
png_dir = os.getcwd() + '\\data\\' # 获取素材列表
pst = os.listdir(png_dir)
for i in range(len(pst)):
pst[i] = png_dir + pst[i] # 预调试好的参数,传入素材列表
jd = [[90,90,5,pst[0]],
[90,87,5,pst[2]],
[90,84,10,pst[3]],
[90,81,8,pst[4]],
[90,78,5,pst[5]],
[90,75,5,pst[6]],
[90,72,8,pst[7]],
[90,74,8,pst[8]],
[90,77,9,pst[9]],
[90,80,8,pst[1]]] # 重置要生成的图片大小
self.author = self.author.resize((90,90)) # 绘制模板
alpha_layer = Image.new('L', (90, 90), 0)
draw = ImageDraw.Draw(alpha_layer)
draw.ellipse((0,0,90,90), fill=255)
self.author.putalpha(alpha_layer) # gif列表
gifs = []
for i in range(len(jd)):
# 将参数传递给生成方法
# 添加到gif列表
gifs.append(self.add_png(jd[i])) # 文件名,是否保存所有,图片列表,fps/ms
gifs[0].save("dem.gif","GIF",save_all=True,append_images=gifs, duration=35,loop=0)
self.author.close() # 写上这个方法,否则在选择文件时,会弹出一个tk的默认界面
# 可以将下面两行注释掉看看效果
root = tkinter.Tk()
root.withdraw() # 选择要生成的文件
# 可以替换为指定路径
file_path = filedialog.askopenfilename()
au = rua(file_path).add_gif()

本功能已集成到<一铭API>中

源站地址:https://api.wer.plus

接口开发采用:Python + Flask

下载完整代码

点击下载

Python生成GIF动态图的更多相关文章

  1. 如何录制视频生成GIF动态图?

    前言 在分享文章时有些知识不好讲清,就打算用gif图来展示,可是在网上找了几个录视频的工具都要会员才可以生成gif动态图,很是郁闷,不过苦苦寻找后,发现LICEcap很好用,可以很方便的生成gif动态 ...

  2. JS生成gif动态图下载

    需求:通过动态变化的图生成一个gif图提供下载. 实现方案:1.可通过服务端生成对应gif,然后前端请求下载2.前端自己实现生成gif图片,自行下载 采用方案:前端实现方式,于是在网上找各种相关的几款 ...

  3. 音视频入门-20-BMP、PNG、JPG、GIF静态图生成GIF动态图

    * 音视频入门文章目录 * 静态图 -> 动态图 前面 [18-手动生成一张GIF图片] 和 [19-使用giflib处理GIF图片] 生成的 GIF 每一帧都是一个颜色,平时用到的 GIF 每 ...

  4. python生成组织架构图(网络拓扑图、graph.editor拓扑图编辑器)

    Graph.Editor是一款基于HTML5技术的拓补图编辑器,采用jquery插件的形式,是Qunee图形组件的扩展项目,旨在提供可供扩展的拓扑图编辑工具, 拓扑图展示.编辑.导出.保存等功能,此外 ...

  5. 利用Python生成GIF动图

    一.PIL库 1.PIL库的概括: PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库 ...

  6. Python排序算法动态图形化演示(实现代码)

     1.冒泡排序 冒泡排序是最简单也是最容易理解的排序方法,其原理就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是 ...

  7. Latex中也能展示动态图?

    技术背景 在学术领域,很多文档是用Latex做的,甚至有很多人用Latex Beamer来做PPT演示文稿.虽然在易用性和美观等角度来说,Latex Beamer很大程度上不如PowerPoint,但 ...

  8. 【Python】模块学习之matplotlib柱状图、饼状图、动态图及解决中文显示问题

    前言 众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用 ...

  9. 你只要5行代码,拥有你的个性二维码,用Python生成动态二维码

    如果想了解更多关于python的应用,可以私信我,或者点击下方链接自行获取,里面到资料都是免费的(http://t.cn/A6Zvjdun) 二维码满天飞,但是有没有想过Python也能制作出专属于自 ...

随机推荐

  1. springboot使用jar包方式启动,找不到resources目录中的配置文件(运行时)FileNotFoundException

    将springboot项目打包成jar包,使用 java -jar jar包进行启动,富文本框使用ckeditor+ckfinder: 因为ckfinder自定义配置文件了,上传图片时出现了异常 De ...

  2. MyBatis Plus 2.3 个人笔记-01-代码生成器

    sb_mybatis_puls2.3 <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  3. x64 简介

      本篇原文为 introduction to x64 assembly ,如果有良好的英文基础,可以点击该链接进行下载阅读.本文为我个人:寂静的羽夏(wingsummer) 中文翻译,非机翻,著作权 ...

  4. 媒体查询@media的使用

    媒体查询 参考:https://developer.mozilla.org...一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,例如宽度.高度和颜色.媒体查询, ...

  5. 「腾讯视频」微信小程序插件介绍

    上期,我们在<从原理到应用,一文带你了解小程序插件能力>一文中介绍了小程序插件的意义.作用以及应用.今天开始,我们会每期与大家分享一款优秀的小程序插件,从使用场景到使用方法,都将作出详细的 ...

  6. 【每日日报】第四十七天---<div>

    1 学习HTML HTML <div> 元素是块级元素,它可用于组合其他 HTML 元素的容器. <div> 元素没有特定的含义.除此之外,由于它属于块级元素,浏览器会在其前后 ...

  7. 布局框架frameset

    <!DOCTYPE html>//demo.html <html> <head> <meta charset="UTF-8"> &l ...

  8. ES 架构及基础 - 1

    Elasticsearch 是一款分布式,RESTful 风格的搜索和数据分析引擎,可以从海量的数据中高效的找到相关信息.如 wiki 用 ES 进行全文检索及其高亮,Github 用其检索代码,电商 ...

  9. AcWing 1222. 密码脱落

    题目链接 题目描述: X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于 ...

  10. 2021年iOS 开发者账号申请-最新

    前言 现在已经是2021年了,中国国内的互联网生态国家管控越来越严禁,国家反垄断法,未成年人游戏限制,整治娱乐圈不良文化,出台公民网络个人信息保护法,全网进行app 应用进行安全审查,等等等,无不意味 ...