当前位置: 首页 > article >正文

用 Python 批量制造表情包,从此聊天斗图没输过

再也不怕群聊斗图了——写个脚本一键生成 100 张自定义表情包还能自动配上沙雕文字。技术不一定改变世界但一定能让你成为表情包之王。一个尴尬的故事有次我在群里和人斗图对方连续甩出 5 张精准打击的表情包而我翻遍手机只找到一张“熊猫头叹气”。那一刻我意识到表情包储备量决定了社交话语权。但手动做图太慢。作为一个 Python 爱好者我的第一反应不是去搜图库而是能不能写个脚本自动生成无限张带文字的表情包于是就有了下面这套“表情包军工厂”代码。今天我把它交给你——请理性使用不要欺负手搓表情包的朋友。准备工作需要安装两个库pip install pillow imageioPillowPython 最强大的图像处理库imageio用来生成 GIF动图表情包另外准备一张或几张空白表情包模板比如熊猫头、沙雕猫、蘑菇头……可以去网上搜一套。功能一给图片批量添加文字表情包核心from PIL import Image, ImageDraw, ImageFontimport osdef add_text_to_image(image_path, text, output_path, font_size40, positionbottom):img Image.open(image_path)draw ImageDraw.Draw(img)# 加载字体可以用系统自带的或者下载一个艺术字体try:font ImageFont.truetype(simhei.ttf, font_size) # 黑体except:font ImageFont.load_default()# 文字位置底部居中或顶部居中bbox draw.textbbox((0, 0), text, fontfont)text_width bbox[2] - bbox[0]text_height bbox[3] - bbox[1]width, height img.sizeif position bottom:x (width - text_width) // 2y height - text_height - 20else:x (width - text_width) // 2y 20# 添加黑色描边效果先画阴影再画文字draw.text((x-2, y-2), text, fontfont, fillblack)draw.text((x2, y-2), text, fontfont, fillblack)draw.text((x-2, y2), text, fontfont, fillblack)draw.text((x2, y2), text, fontfont, fillblack)draw.text((x, y), text, fontfont, fillwhite)img.save(output_path)print(f已生成: {output_path})# 批量生成templates [panda.jpg, cat.jpg, mushroom.jpg] # 你的模板列表texts [我太难了, 就这, 你有事吗, 离谱, 哈哈哈, Python 牛逼, 摸鱼中勿扰]for i, template in enumerate(templates):for j, text in enumerate(texts):output foutput/meme_{i}_{j}.pngadd_text_to_image(template, text, output, font_size50)运行后output文件夹里多了几十张图每一张都是表情包。从此斗图你只需要输入meme_1_3.png手速碾压全场。功能二熊猫头经典模板——自动换脸示例如果你有熊猫头的空白模板大圆脸空白可以在指定位置贴上别人的脸。这里简化演示将一张人脸图片缩放到合适大小贴到模板的圆形区域内。from PIL import Imagedef paste_face_to_panda(face_path, panda_template_path, output_path):panda Image.open(panda_template_path).convert(RGBA)face Image.open(face_path).convert(RGBA)# 缩放脸图face face.resize((120, 120))# 创建圆形遮罩mask Image.new(L, (120, 120), 0)mask_draw ImageDraw.Draw(mask)mask_draw.ellipse((0, 0, 120, 120), fill255)# 贴脸位置根据你的模板手动调整偏移offset (140, 100)panda.paste(face, offset, mask)panda.save(output_path)这样你就能把朋友的照片做成熊猫头表情包了谨慎使用别被打。功能三生成动态表情包GIF静态图不够嚣张动图才是终极武器。我们取一张动图模板比如“黑人问号”的几帧然后在每一帧上添加相同的文字。import imageiofrom PIL import Image, ImageDraw, ImageFontdef add_text_to_gif(gif_path, text, output_path):reader imageio.get_reader(gif_path)fps reader.get_meta_data()[fps]frames []for frame in reader:img Image.fromarray(frame).convert(RGBA)draw ImageDraw.Draw(img)# 字体大小按比例font_size int(img.height / 10)try:font ImageFont.truetype(simhei.ttf, font_size)except:font ImageFont.load_default()# 添加文字底部居中bbox draw.textbbox((0, 0), text, fontfont)w bbox[2] - bbox[0]h bbox[3] - bbox[1]x (img.width - w) // 2y img.height - h - 20draw.text((x, y), text, fontfont, fillwhite, stroke_width2, stroke_fillblack)frames.append(img)# 保存 Gifimageio.mimsave(output_path, [np.array(frame) for frame in frames], fpsfps)print(f动图表情包已保存: {output_path})注意需要pip install imageio并且可能需要pip install imageio-ffmpeg。功能四表情包生成器 随机组合把以上功能打包成一个函数然后随机从词库里抽词、从模板库里抽图批量自动生成几百个表情包。import randomword_bank [加班, 改需求, 提测, 打回, 上线, 回滚,Python 是最好的语言, PHP 才是, 你说的对, 但我选择躺平]template_bank [panda.jpg, cat_sad.jpg, dog_confused.jpg]for i in range(100):template random.choice(template_bank)text random.choice(word_bank) ? if random.random() 0.5 else random.choice(word_bank)add_text_to_image(template, text, foutput/random_{i}.png)一夜之间你拥有了一个 100GB 的表情包库斗图时随手丢一张对方甚至怀疑你是人工智能。进阶应用自动爬取热词生成当日热点表情包配合爬虫抓取微博热搜或知乎热榜自动生成当天热词的表情包然后发到公司群里——同事会觉得你不仅技术好还特别紧跟时事。import requestsfrom bs4 import BeautifulSoupdef get_weibo_hot():url https://s.weibo.com/top/summaryheaders {User-Agent: Mozilla/5.0}resp requests.get(url, headersheaders)soup BeautifulSoup(resp.text, html.parser)hot_list []for td in soup.select(.td-02 a)[:10]:hot_list.append(td.text)return hot_listhot_words get_weibo_hot()for idx, word in enumerate(hot_words):add_text_to_image(template.jpg, word, fhot_{idx}.png)注意事项法律 道德请勿使用他人肖像制作侮辱性表情包可能侵犯肖像权或名誉权。请勿制作包含违法内容的表情包。在公司群适度使用避免被移出群聊。结语Python 能干很多事情分析数据、训练模型、写网站。但今天我展示的是它最“接地气”的一面——帮你快乐地摸鱼用表情包征服群聊。当你的同事还在手动打开美图秀秀时你已经一键生成了 1000 张图。当你的朋友还在问“这张图有没有字”时你已经自动打了水印。这就是技术的降维打击。现在去下载几个空白模板跑一下上面的代码然后去群里炸场吧。别忘了把成品留言给我看看——我斗图也很强来呀。附如果你懒得找字体可以用ImageFont.load_default()但效果比较素。推荐下载simhei.ttf黑体或arial.ttf放到代码同目录下。

相关文章:

用 Python 批量制造表情包,从此聊天斗图没输过

再也不怕群聊斗图了——写个脚本,一键生成 100 张自定义表情包,还能自动配上沙雕文字。 技术不一定改变世界,但一定能让你成为表情包之王。 一个尴尬的故事 有次我在群里和人斗图,对方连续甩出 5 张精准打击的表情包,…...

大模型内部的数学世界

从文字到数字,从数字到理解 引言:当你对大模型说"你好" 想象你走进一座巨大的图书馆。这座图书馆里有数十亿本书,每本书都记录着人类的知识。当你走向前台,对管理员说:"你好,请问什么是量子力学?"——管理员听到了你的问题,然后在她的大脑中开始…...

ofa_image-caption步骤详解:临时文件管理、Pipeline超参设置与结果缓存机制

ofa_image-caption步骤详解:临时文件管理、Pipeline超参设置与结果缓存机制 1. 工具概述 ofa_image-caption是一款基于OFA(ofa_image-caption_coco_distilled_en)模型开发的本地图像描述生成工具。这个工具通过ModelScope Pipeline接口调用…...

Wasserstein距离在GAN中的原理与实践

1. Wasserstein距离在GAN中的核心价值生成对抗网络(GAN)训练过程中最棘手的难题莫过于模式崩溃(Mode Collapse)和梯度消失。传统GAN采用的JS散度(Jensen-Shannon Divergence)在判别器最优时,生成…...

为什么你的 devcontainer.json 总被面试官打叉?11个被忽略的 spec v2.0 兼容性细节,资深工程师私藏笔记

更多请点击: https://intelliparadigm.com 第一章:Dev Containers 面试高频误区与 spec v2.0 兼容性认知盲区 常见误解:Dev Container 就是 Docker Compose 的别名 许多候选人误将 devcontainer.json 视为 Docker Compose 的简化配置&…...

北京通州比较好的学画画画画班推荐

在北京通州,为孩子选择一家优质的画画班是很多家长关心的话题。今天,我将为大家推荐一家备受好评的少儿美术机构——甲乙果美术书法,并通过具体数据和案例来展示其优势。一、科学进阶课程体系1.1 课程设计内容:甲乙果美术书法针对…...

Vulkan GPU图像处理之幂律(伽马)变换:Kompute框架实战与性能分析

一、定义 章节:第3章 灰度变换与空间滤波 → 3.2 基本灰度变换 → 3.2.3 幂律(伽马)变换别名:幂律变换(Power‑Law Transformation)、伽马变换(Gamma Transformation) 公式 [scrγ] …...

3步掌握ChanlunX缠论插件:通达信技术分析终极指南

3步掌握ChanlunX缠论插件:通达信技术分析终极指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX缠论可视化插件是专为通达信软件设计的开源缠论分析工具,它将复杂的缠论…...

C/C++程序设计的基本概念详解

学C语言有很长一段时间了,想做做笔记,把C和C相关的比较容易忽视的地方记下来,也希望可以给需要的同学一些帮助。我的这些文章不想对C和C的语法进行讲解和罗列,这些东西随便找一本书就讲的比我清楚,我只是想把一般人忽视…...

Docker原生WASM运行时落地实践:从零搭建低延迟边缘AI推理节点(含性能压测数据)

更多请点击: https://intelliparadigm.com 第一章:Docker原生WASM运行时落地实践:从零搭建低延迟边缘AI推理节点(含性能压测数据) WebAssembly(WASM)正突破浏览器边界,成为边缘计算…...

神经网络在NLP中的应用与Transformer实现详解

1. 神经网络模型在自然语言处理中的核心价值 第一次接触自然语言处理(NLP)时,我被传统基于规则的方法折磨得够呛——那些复杂的语法解析树和手工设计的特征模板,就像试图用乐高积木搭建一座摩天大楼。直到2013年Mikolov提出word2vec,神经网络…...

MCP 2026国产化配置实战:从零搭建符合等保2.0三级+信创名录要求的高可用集群(含OpenEuler 24.03 LTS完整脚本)

更多请点击: https://intelliparadigm.com 第一章:MCP 2026国产化部署概述与合规基线解析 MCP(Mission-Critical Platform)2026 是面向关键信息基础设施的国产化高可靠平台,其部署需严格遵循《信创产品适配目录&#…...

阿里云国际站服务器DNS服务器设置成什么?服务器dns怎么填写?

阿里云国际站服务器DNS服务器设置成什么?服务器dns怎么填写?针对阿里云国际站(Alibaba Cloud International)的 ECS 服务器,设置 DNS 分为两种常见场景:使用阿里云内网 DNS(推荐)或使…...

Learning to AutoFocus:深度学习驱动的自动对焦实战

文章目录 Learning to AutoFocus:深度学习驱动的自动对焦实战 一、问题背景 二、技术方案 三、数据准备 四、模型 五、训练 六、推理与对焦控制 七、部署考虑 八、实验结果 九、总结 代码链接与详细流程 购买即可解锁1000+YOLO优化文章,并且还有海量深度学习复现项目,价格仅…...

香港工地火灾的警示:边缘AI如何让“监控”真正变成“安全”

引言近期香港某在建工地发生严重火灾,造成多人伤亡。事故原因指向违规动火、疏散通道堵塞、监控预警不及时。这让我不禁思考:在AI和边缘计算足够成熟的今天,我们能不能用技术提前掐灭火灾的苗头?本文不讲产品,只讲技术…...

Nixtla时间序列预测生态:统一接口、高速统计与深度学习模型实战

1. 项目概述:时间序列预测的“瑞士军刀”如果你正在处理时间序列数据,无论是销售预测、服务器监控还是能源消耗分析,那么“Nixtla/nixtla”这个名字很可能已经出现在你的雷达上。这不是一个单一的工具,而是一个由Nixtla团队维护的…...

助贷CRM系统比较是什么?其主要特点应关注哪些方面?

在探讨助贷CRM系统比较时,有几个关键方面需要我们重点关注。首先是获客能力,优秀的系统能够帮助金融机构有效获取和管理客户资源。其次,合规性是确保业务稳定发展的基础,务必符合相关法规,以避免不必要的法律风险。再者…...

hyperf 微服务架构方案大全

---1. 服务拆分原则 大白话: 什么时候该拆、怎么拆、拆多细。 拆分原则…...

scikit-learn预测建模全流程解析与实战技巧

1. 预测建模基础与scikit-learn概览 机器学习预测建模的核心在于从历史数据中发现规律,并将这些规律应用于新数据。scikit-learn作为Python最流行的机器学习库,提供了统一的API设计,使得从数据预处理到模型评估的整个流程变得异常简单。我初次…...

C/C++:类型转换

最近复盘C基础,发现类型转换看着简单,实际细碎考点非常多。很多代码写法平时随手就能写,但一深挖底层编译逻辑就容易混乱。我把整套知识点按步骤拆解、条理化整理,配上完整可运行代码,全程条目化讲解,适合自…...

AI模型部署效率提升210%,Docker AI Toolkit 2026到底重构了哪4层编排协议?

更多请点击: https://intelliparadigm.com 第一章:AI模型部署效率跃升210%:Docker AI Toolkit 2026的范式革命 Docker AI Toolkit 2026(DAIT-2026)正式终结了传统模型容器化部署中“构建慢、启动卡、调试难”的三重瓶…...

基于向量数据库的视频语义检索:从多模态特征提取到工程实践

1. 项目概述:当视频遇见向量数据库最近在折腾一个挺有意思的项目,叫video-db/bloom。光看这个名字,你可能觉得它和视频数据库或者某种“绽放”效果有关。实际上,它解决的是一个更底层、更核心的问题:如何让机器像人一样…...

DemoGPT:从自然语言描述到完整Web应用的AI智能体编程实践

1. 项目概述:当大模型学会自己写代码最近在GitHub上看到一个项目,叫DemoGPT。初看标题,你可能会觉得这又是一个基于GPT的代码生成工具,没什么新意。但当我深入使用和拆解后,发现它的设计理念和实现方式,完全…...

机器学习超参数调优:从原理到工程实践

1. 机器学习超参数调优的本质理解超参数调优是每个机器学习工程师的必修课,但很多人把它简单理解为"试参数"。我在金融风控和推荐系统领域摸爬滚打八年,发现优秀的调参师和普通使用者的本质区别在于:前者把调参视为对问题空间的系统…...

Real-ESRGAN-ncnn-vulkan:3分钟让模糊图像焕然新生的AI超分辨率神器

Real-ESRGAN-ncnn-vulkan:3分钟让模糊图像焕然新生的AI超分辨率神器 【免费下载链接】Real-ESRGAN-ncnn-vulkan NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. 项目地址: https://gi…...

神经形态视觉传感器与3D堆叠计算架构解析

1. 神经形态视觉与事件相机的技术演进神经形态视觉传感器(Neuromorphic Vision Sensors)正彻底改变传统计算机视觉的范式。这类受生物视觉启发的传感器采用完全异步的工作机制,每个像素独立检测亮度变化并触发事件(Event&#xff…...

京东大屏AI手机+东东APP:银发智能,诚意够!

4月25日,京东举办了大屏AI手机生态发布会。说实话,一开始我对“银发青年”这个定位的产品没抱太高期待——毕竟市面上不少所谓的“长辈机”,要么是简单减配、贴个标签,要么是功能堆砌,根本没真正懂中老年用户的需求。但…...

EasyAnimateV5图生视频部署:Nginx反向代理配置支持HTTPS与域名访问

EasyAnimateV5图生视频部署:Nginx反向代理配置支持HTTPS与域名访问 你是不是已经成功部署了EasyAnimateV5图生视频模型,但还在用IP地址加端口号的方式访问服务?每次都要输入一长串的http://183.93.148.87:7860,不仅难记&#xff…...

1. 线性回归之 向量矩阵

1. 向量 1.1 向量运算1.2 范数 (Norm)2. 矩阵 2.1 矩阵运算:矩阵的加减法和乘法2.2 矩阵转置以及方阵、对称方阵、单位方阵2.3 矩阵乘法的性质2.4 矩阵转置的性质题目:...

2026届学术党必备的六大AI辅助写作网站实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 大规模语言模型的核心创新,在DeepSeek系列论文中得到了系统阐述。当中的其一&…...