python制作动态表情包,用 Python 开发一个【GIF表情包制作神器】

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 22:00   11   0

用 Python 开发一个【GIF表情包制作神器】

小帅b 学习python的正确姿势

之前小帅b写过这样一篇教程

用python成为了微信斗图届的高手

然后,好多人表示:

c77fc5ea7b8b65fb92c7a3f42c763796.png

虽然存了很多表情包

但似乎还不是很过瘾

因为它不可以自己来定制

我们可不可以根据一些表情素材

然后自己制作专属表情包呢

像这样

645a0749eb38c6f9184524a98139260b.png

本来小帅b想自己实现一个表情包制作器

后来发现已经有人在 GitHub 分享了

d0acd71b564cb737111e7e6785c1f199.png

主要功能就是

可以在原有的素材里面

自定义自己的字幕

最后生成 GIF 表情

a354a1003b56e730fcc9a7761af65e1f.png

直接把项目源码地址扔给你还是差点意思

有句话怎么说来着

要知其所以然嘛

所以我还是先跟你说下

这是如何使用 Python 实现的吧

看懂之后你就可以完全根据自己

想要的方式去创建 GIF 表情包了

cd680a5859c8e38842aaced179f61702.png

想要将字幕和视频合成

就需要用到 ffmpeg

db43c0a38c8d9542dbbedeaa341d6574.png

你可以在这里找到相关文档

https://ffmpeg.org/

比如各种命令的参数使用

f16232d9f5af72a55fdaa60eb273a4fb.png

我们之前就使用 ffmpeg

将音频和视频进行合成

用 Python 开发一个【视频营销号】生成器

a7bef52dc5332200b13f334c5286b745.png

而要将视频和字幕合成 GIF

就可以通过这样的命令来合成

48e442886fdbb6130bc212dd840d8d7a.png

其中 -i 就是原始视频的路径

225be6d7257bc8b5b4325c4e737c33b7.png

ass 传入的是自定义的字幕文件

69d61b2dc0f7b79bd032e86ae8fd1271.png

最后输出为 haha.gif

40d73a081146fb0a43755d5fc0ca50c8.png

这样我们就可以得到自己想要的 GIF 了

f32c50d5a58fb788382500718b3da130.png

所以其实

我们只需要相应的原始视频文件

以及字幕文件模板就可以了

视频可以到网上找到下载

那么字幕模板如何生成呢

可以使用 aegisub 免费软件生成

字幕文件

地址在这

http://www.aegisub.org/

你可以在相应的位置

输入你想说的sao话

81ba188a8fa8a4652166a9e4bae1826e.png

编辑完就可以导出字幕

得到相应的 ass 文件

dfc9a2ec75a634a9ca11cc276d558c21.png

那要替换成别的字幕

只需要改变上面的文字就可以了

可以定义一个模版文件

将字幕内容变成变量

用模板语言标记一下

feba3d7c052ac328c1a590087cf0602b.png

这里用了列表 sentences

这样就可以用来接收用户定义的字幕

将每一句话都放在合适的位置

266557df7bf2dd7e780505b7bff34190.png

1c8bfc92ca3d2525010987652fd47fe1.png

现在你知道怎么生成字幕

也知道如何使用 ffmpeg 合成 GIF

那么想要在 Python 运行 ffmpeg 命令

就可以使用 subprocess

学习python的正确姿势

在 python 中执行终端的命令,视频时长有限,最后的小火车还没开完就没咯[旺柴] [email protected]

视频号

(顺便关注下呗)

然后像这样执行

7b32c7728285c207ce471f148c998bd9.png

这就是实现表情包制作的主要思啦

b6e7a3c1c9496e41956fe4761c1f0d10.png

当然

我们可以直接就在 Python 中创建表情包

不过也可以完善一下

直接做出来给用户使用

这个项目的作者就使用 Flask

简单写了个 web

5e338cca56b76802be4ce26c1e23b65a.png

让用户写入想要生成的表情包文字内容

c07a28a92364aef65c2f41e5381ab39d.png

获取用户的输入的内容使用 post 请求

80b53a8392bfdd73e6e8440dc99aeb40.png

后端的 POST 方法主要是去调用

我们刚刚说的方法

然后将得到的 GIF 路径提供给用户下载

dc4834f348f21305a89a265631be8567.png

是不是挺好玩的

源码地址在这

https://github.com/East196/sorrypy

(完事~)

11923d2efb972b41d2eb0f49989bc4be.png

哈哈谁 TM 买小米啊

哦不是

谁特么敢跟我们斗图啊

bed9684070142e6592dd85651e45ece9.png

有机会的话

小帅b开发个微信表情包制作小程序

给你们玩玩

想要的点在看

多的话我就安排起来

ok

本篇主要给你介绍一下思路

希望对你有帮助

那么我们下回见

peace

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP