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

news/2024/10/14 0:28:37
用python成为了微信斗图届的高手
然后,好多人表示:






虽然存了很多表情包但似乎还不是很过瘾
因为它不可以自己来定制
我们可不可以根据一些表情素材然后自己制作专属表情包呢

像这样





本来小帅b想自己实现一个表情包制作器
后来发现已经有人在 GitHub 分享了


 

 

 

主要功能就是

可以在原有的素材里面

自定义自己的字幕

最后生成 GIF 表情

 

 

 

 



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

有句话怎么说来着要知其所以然嘛
所以我还是先跟你说下这是如何使用 Python 实现的吧

看懂之后你就可以完全根据自己想要的方式去创建 GIF 表情包了





想要将字幕和视频合成就需要用到 ffmpeg





你可以在这里找到相关文档
https://ffmpeg.org/

比如各种命令的参数使用






我们之前就使用 ffmpeg 将音频和视频进行合成

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






而要将视频和字幕合成 GIF 
就可以通过这样的命令来合成





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



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





最后输出为 haha.gif





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






所以其实我们只需要相应的原始视频文件以及字幕文件模板就可以了

视频可以到网上找到下载那么字幕模板如何生成呢

可以使用 aegisub 免费软件生成字幕文件
地址在这https://www.falvshike.com
你可以在相应的位置
输入你想说的sao话



编辑完就可以导出字幕得到相应的 ass 文件



那要替换成别的字幕
只需要改变上面的文字就可以了

可以定义一个模版文件
将字幕内容变成变量用模板语言标记一下





这里用了列表 sentences 
这样就可以用来接收用户定义的字幕将每一句话都放在合适的位置




 

 

 

现在你知道怎么生成字幕

也知道如何使用 ffmpeg 合成 GIF

 

那么想要在 Python 运行 ffmpeg 命令

就可以使用 subprocess

 

 

 

(顺便关注下呗⬆️)

 

 

然后像这样执行

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

当然

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

 

不过也可以完善一下

直接做出来给用户使用

 

这个项目的作者就使用 Flask 

简单写了个 web

 

 

 

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

 

 

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

我们刚刚说的方法

 

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

 

 

 

 

 

 

是不是挺好玩的

源码地址在这

 

https://github.com/East196/sorrypy

(完事~)

 

 

 

 

 

 

哈哈谁 TM 买小米啊

哦不是

谁特么敢跟我们斗图啊

 

 

 

 

 

 

有机会的话

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

给你们玩玩

 

想要的点在看

多的话我就安排起来

 

 

ok

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

希望对你有帮助

 

那么我们下回见

peace

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

DRM

DRM是Linux目前主流的图形显示框架,相比FB架构,DRM更能适应当前日益更新的显示硬件。 比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等,而这些功能DRM原生都支持。 同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一…

Clock Switch,芯片时钟切换的毛刺是什么,如何消除

背景 芯片运行过程中需要时钟切换时,要考虑到是否会产生glitch,小小的glitch有可能导致电路运行的错误。所以时钟切换时需要特别的处理。 直接使用MUX进行时钟切换或者采用如下电路结构进行时钟切换:assign outclock = (clk1 & select) | (~select & clk0);或 assig…

【计算机网络】通过ensp实验分析二三层数据包转发过程

一、实验准备 需要提前安装好wireshark、virtalbox、WinPcap和模拟工具ensp,具体的安装过程可以自行百度~ 特别提醒一点就是virtalbox和ensp的兼容性问题,我安装的是ensp1.3.00.100版本,该版本不支持virtalbox官网的6和7版本,我这边退回到5版本才正常运行起来。二、网络拓扑…

Redis持久化、主从与哨兵架构详解

参考 图灵课堂 https://zhuanlan.zhihu.com/p/443951927 https://blog.csdn.net/weixin_37548768/article/details/124538778?spm=1001.2014.3001.5502 https://www.runoob.com/redis/redis-transactions.htmlredis支持持久化到磁盘,这样可用进一步保证数据的完整性。 redis持…

异或

这道题目的思路比较好 由于\(1\)到\(n\)的路径很多,我们猜想,任意选一条路径可以通过某种异或运算来得到最优解 证明:假设我们选出的路径不是最优路径,那么对于另一条最优路径,一定可以通过我们选出的路径异或上若干个简单环来达到。举个例子说明假设我们选出的是直线段\(…

rt1052点亮0.96寸spi屏

一,前言 目的是用rgb屏,但是rgb屏硬件还没准备好,所以要先学习下lvgl上位机,但是学习完要烧录到屏中看效果,所以我今天就先点亮spi屏。找了之前stm32时候点亮频的lcd驱动进行的移植,cs我不是gpio控制的,所以注释了2行,看起来无影响。 二,说明 0.96存spi驱动的LCD屏ST7…

【网络通信】Windows搭建RTMP视频流服务器(含推流/拉流详细教程)

RTMP(Real-Time Messaging Protocol)是一种用于实时流媒体传输的网络协议,主要用于传输音频、视频和数据。RTMP最初是由Adobe Systems公司开发的,用于其Flash平台和Adobe Media Server,但随着技术的发展和开源社区的推动,RTMP已经成为了一个广泛使用的流媒体传输协议。今…

基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证

1.算法运行效果图预览 正常图像: checkb位于f192b和f250b之间多度曝光图像: checkb位于f192b和f250b之外,判决为曝光过度。2.算法运行软件版本 vivado2019.2matlab2022a3.算法理论概述 参考资料如下:主要采用的方法为: 4.部分核心程序`timescale 1ns / 1ps // // Compan…