华为再次用实力证明,家族企业还能存活多久

优质文章,第一时间送达!

这段 Python 代码,可以让你脱单

作者:@明哥

公众号:Python编程时光

2020年,这个看起来如此浪漫的年份,你还是一个人吗?

难不成我还能是一条狗?

18年的时候,写过一篇介绍如何使用 Python 来表白的文章。

虽然创意和使用效果都不错,但有一` k d缺点,这是那个exe文件,女神需要打开电脑,才有可能参与进来,进而被你成功\"调戏”。

由于是很早期的文章了,应该有0 n Q很多人没有看过。

没有看过的,你可以点击这里查G i t . {看:用Python写一个表白神器让你脱离单身

提醒j 2 l 9 6 V y g你一下,后天就是 2月14日了。什么?还是一条狗呢?

行吧,那你赶上了,今天的文章,就是为你而写。

明哥今天来教r P ]你如何使用 Python 来向心中的女神表白。

前段时间,在微博上刷到了一条E + o : )推荐。内容是这样的

这段 Python 代码,可以让你脱单

出于好奇,我点r ` ] y o开了,放大再放大,emmm,有点意思吖…J ] = [ $

这段 Python 代码,可以让你脱单

这四个字,对于像我这样腼腆的DS= w { O @ *男来说,还真不好意思说,说出来,万一被拒绝了咋办?

使用套路来表白,并观察对方的反应,你大概能清楚对方是否对你也有好感,先测试下自己有几成的把握再下n S o b Z p 6 X x手或许更稳妥。

今天就教大家一个P * X M r这样的套路:如何使用 Python 来做出来这样H b . Z的图,有点浪漫,又? + P g c W有点极客。能不能拿下你女神,就要靠你(命)了。(๑•₃ •๑)

首先,你得先找到一张你女神的高清图片(尽量分辨率高点的吧,效果会好点)。

这里我以一张高圆圆的图来做一下演示,原图是这样的(分辨率是:2000*1328)。

使用我写好的脚本运行后,就生成了这样一张图,请你点击,放大再放大。(惊喜?

这段 Python 代码,可以让你脱单

然后将这张图v $ z ; S # D &片发给你的女神,具体话术你自己想咯。

好吧,相比女神来说,你可能更在意这是如何实现的(活该你单身)。

其实原理很简单,代码也还不到20 行。

首先,来讲讲原理。

事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其J = z中每位数的取值范围都是 0-255。

比如(0,0,0)代表黑色,(255,255,255)& S b ^代表白色[ 6 A ~ %

当像素点足够多的时候,这张照片就是我们所说的高清照片。

而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。

用 E% 5 P : + Z d e Cxcel 画了个图,每一方格代表一个像素,其中若我的字体的大小设置 5(非字号5,而是每个字占用5个像素),效果大概就是如下这样子。

这段 Python 代码,可以让你脱单

我只要N j ^每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。

有了思路,就可以开始我们的代码。

首先,使用 pillow.Image读取图像,并使用load函数获取到每一个像素值。

img_raw = Image.open(img_path)
img_array = img_rawu - Z k r F L W.load

然后新建一张画布,并选好你要使用的字体和字体大小。

img_new = Image.new(\"RGB\", img_raw.size, (0, 0, 0))
draw = ImageDraw.Draw(img_u r / ? _ 5 Z Wnew)
font = ImageFont.truetype(a x ! { A U k Q\'C:/Windows/fonts/Dengl.ttf\', font_size)

由于需要不断循环 “我喜欢你!”,这五个字符。所以这里可以while循环 yield 来实现一个生成器。

def character_generator(text):
while True:
for i in range(len(text)):
yield text[i]

最后,要给这些字加? 4 S上相应的颜色,写入新创建的画布中。

for y in range(0, img_raw.siW : K s ~ze[1], font_size):
for x in range3 . a x [ d Q(0, img_raw.size[0], font_size):
draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)

最后将成品保存

img_new.convert(\'RGB\').save(\"F:/k I | / t = R/gyy_save.jpeg\")

完整代码如下,供你参考

from PIL import Image, ImageDraw, ImageFont

font_size = 7
text = \"我喜欢你!\"
img_path = \"F://0 / + r ( : s a Egyy.jpeg\"

img_raw = Image.open(img_path)
img_array = img v , * D 9 - ` #_raw6 Z l Y s ] ] f (.load

img_new = Ima2 O B % c a K ige.new(\"RGB\", img_raw.siK l : ` ^ze, (0, 0, 0))
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype(\'C:/Windows/fonts/Dengl.ttf\', font_size)

def character_generato6 6 B x ?r(text):
while True:
for i in range(len(text)):
yi^ V J R D ~ Qeld text[i]

ch_gen = character_generator(text)

for y in ranq ( ) + K $ge(0, img_raw.size[1], font_size):
for x in range(0, img_raw.size[0], font_size):
draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)

img_new.convert(\'RGB\').save(\"i N D i # iF://save.jpeg\")

最后再多上几张效果图吧(对,我是海贼迷)。

1. 路飞

这段 Python 代码,可以让你脱单

2. 索隆

这段 Python 代码,可以让你脱单

3. 山| 6 I ~

这段 Python 代码,可以让你脱单

好文章,我G N - 3 j m :在看z j & 3❤️

上一篇

我县争取2020年农村电网升级改造资金3200万元

下一篇

Sensor Tower:2024年App Store和Google Play收入将达到1710亿美元

你也可能喜欢

  • 暂无相关文章!

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
返回顶部