赶在520之前,程序员如何用Python送上最特别的“我爱你”表白
摘要: 每到情人节、七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题——怎么给女朋友/老婆一个与众不同的节日惊喜。今天给大家分享一个独特的表白方法——用“我爱你”拼出心爱人的模样!
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
每到情人节、七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题——怎么给女朋友/老婆一个与众不同的节日惊喜。
你说送花吧,到时候朋友圈里一划,全部都是送花的,女票:“没创意!”,遂卒;
你说送礼物吧,要是送的礼物不合心意,女票:“你根本不懂我!”,又卒;
你说逛街买买买吧,摸摸空空的口袋,默默把这个想法丢到一边...
今天,就和大家分享一个独特的表白方法——用“我爱你”拼出心爱人的模样!
成品图!
什么?看不清长啥样?放大来康康
想做出这样的照片吗?那么~我们现在就开始啦~
1. 需要准备的有
女票超级无敌可爱美腻的照片 1张!
python (这里用的是python3.7)
需要的用到的库
cv2:用来读取照片
PIL:用来生成新的图片
性能比较OK的电脑
(如果没有接触过python,不想/不会配环境、装cv2、PIL之类的库,或者电脑性能不太够,强烈推荐使用华为云的ModelArts进行开发~直接解决环境配置、电脑性能的各种问题~)
2. 基本思路
要实现这样的效果,首先需要有一张照片,提取其像素信息,然后赋给排布满文字的新图片,就能得到如上图所示的一张新图片啦!
废话不多说,接下来就开始吧~
3.操作流程
1.首先导入用到的库(两者的作用在1中已有介绍)
from PIL import Image, ImageDraw, ImageFont
2.然后开始声明绘图的方法
这里有两个参数,分别是原图片的路径和要写的文字
def draw(pic, draw_text):
3.接着读取图片
使用cv2中的imread方法读取图片信息,
使用PIL中的Image方法创建一个新的图片,其尺寸和源图片一致,背景为白色
blank = Image.new("RGB", [img.shape[1], img.shape[0]], "white") drawObj = ImageDraw.Draw(blank) # 告诉程序,我们接下来就要在这个图上写字啦!
4.声明绘图的一些参数(这些参数都是我经过多次试验得到的最佳大小~)
m = 9 # 字体的大小 font_path = '你使用字体的位置' # 字体的路径 font = ImageFont.truetype(font_path, size=m) # 将字体信息赋给font变量,供后续使用
5.接下来就是最关键的一步!把文字写上去,并按照源图片给图片上色
通过两个for循环,依次定位到每个文字所在的色块(中间间隔n是因为文字比像素块大得多,不可能完全按照每个像素的位置和色彩来排布)
使用text()方法填入带色彩的文字,几个参数分别代表:
[j, i] -- 坐标位置
draw_text[int(j / n) % len(draw_text)] -- 找到当前该写入哪个文字了(比如“我爱你”中的第几个字)
fill=(img[i][j][2], img[i][j][1], img[i][j][0]) -- 代表源图片对应位置的颜色(三个分别代表RBG颜色值)
for i in range(0, img.shape[0], n): for j in range(0, img.shape[1], n): drawObj.text( [j, i], draw_text[int(j / n) % len(draw_text)], fill=(img[i][j][2], img[i][j][1], img[i][j][0]), font=font ) # 按句子的顺序填充文字
6.写入完成,导出图片
7.调用我们封装好的方法~
输入图片路径和目标文字,运行~一张独一无二的表白图就大功告成!
draw('1.jpg', "我爱你")
附上全代码(记得把字体路径改成自己电脑的哟~)
from PIL import Image, ImageDraw, ImageFont def draw(pic, draw_text): img = cv2.imread(pic) blank = Image.new("RGB", [img.shape[1], img.shape[0]], "white") drawObj = ImageDraw.Draw(blank) n = 10 m = 9 font = ImageFont.truetype(font_path, size=m) for i in range(0, img.shape[0], n): for j in range(0, img.shape[1], n): drawObj.text( [j, i], draw_text[int(j / n) % len(draw_text)], fill=(img[i][j][2], img[i][j][1], img[i][j][0]), font=font ) blank.save('img_' + pic) draw('1.jpg', "我爱你")
进阶~
既然都能做成一帧一帧的图片了,为什么不把他们连接起来~做成一个表白视频呢?
当然阔以!
赶在520之前,程序员如何用Python送上最特别的“我爱你”表白相关推荐
- python输出n个我爱你,赶在520之前,程序员如何用Python送上最特别的“我爱你”表白...
摘要:每到情人节.七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题--怎么给女朋友/老婆一个与众不同的节日惊喜.今天给大家分享一个独特的表白方法--用"我爱你"拼出心爱人的模样! ...
- 看老程序员如何用Python的SimPy库简化复杂的编程模型的
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 文章目录 随机的定义 设置商店:对模拟编程 用监控程序监视模拟 三人不欢:一些结果(以及它们意味着什么) 在我遇到 SimPy 包 ...
- python 中煤_程序员如何用Python科学炒股
菜鸟学Python的第155篇原创文章 阅读本文大概需要3分钟 菜鸟独白 我是一个程序员,也是一个老股民,差不多有5年的股龄,经历过牛市也经历过熊市.起起伏伏,都没有怎么赚钱,至到去年我开始用Pyth ...
- 彩民看过来,看老程序员如何用Python数据分析双色球基于线性回归算法预测下期中奖结果示例
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果.分享给大家供大家参考,具体如下: 前面讲述了关于双色球 ...
- 程序员(女)送上BAT+华为SP面经,聊一些细节加分项
先讲面试流程,按时间和公司来排序: 阿里 阿里在拥抱变化消息放出来之后,随随便便做了笔试题,然后竟然收到了面试通知.技术面略温和.可能是他们不招人的原因. 一面: 问了一个改进的二分查找,要求找到输入 ...
- 程序员如何用Python了解女朋友的情绪变化?
作者:云外孤岛 来源:https://www.cnblogs.com/cloudbird/p/ 10534658.html 好不容易有了女朋友,可相处起来总是磕磕碰碰. 有时候,你很想关心她,但是你太 ...
- 程序员如何用糖果实现盈利 - [别人家的程序员01]
程序员如何用糖果实现盈利 - [别人家的程序员01] 程序员如何用糖果实现盈利 - [别人家的程序员01] 前言 CandyJapan 网站如何从零走到今天 平台收支状况 如何做分析.写代码 总结 程 ...
- 程序员如何用“心“表白(结尾附源码)
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
- 编程开发学习笔记之程序员如何用1年时间获得3年成长(图)
2019独角兽企业重金招聘Python工程师标准>>> 编程开发学习笔记之程序员如何用1年时间获得3年成长(图) 前言 这世界存在这么一个银行,你一出生,就自动享有这家银行为你开设的 ...
最新文章
- AI语音独角兽思必驰完成数亿元Pre-IPO融资,冲刺苏州AI创业第一股
- 优化算法、梯度下降、SGD、Momentum、Adagrad、Adam
- 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);...
- oracle_修改连接数
- 手机上用的是的WAP协议 电脑上的是HTTP协议 这两个有什么不同
- 程序员如何快速消除自己的知识短板?
- 阿里巴巴Java开发手册-日志规约
- linux下svn(subversion)服务端添加工程及配置权限
- java判断jd安装,java - 安装和使用 java 反编译应用: jd-compiler ,以及命令行的使用...
- 预测未来的环境,提前做出改变
- mfc与mysql_MFC与MySql的链接 VS2008
- MATLAB2016a+eeglab安装
- 急需能临时发邮件的临时邮箱 临时邮箱怎么注册 邮箱163注册入口在哪
- rose ha 配置
- 单链表之快慢指针技巧
- “停课不停学”钉钉被刷一星在线求饶,这波公关我给满分
- 海康威视sdk语音转发(实现)implementation ‘com.hikvision.ezviz:ezviz-sdk:4.8.3‘(修改)
- java pptx转图_Java 将PPT转换为图片格式
- antd去掉table自带的分页条
- 别只看钱:赛门铁克46.5亿美元现金收购Blue Coat为哪般?