python语言表白_[学习笔记]用Python简易向喜欢的人表白

前几天是情人节,就用Python图像库PIL来搞点事情。

先看图:

1937487-20200216180633837-1826999467.png

其实这样看不出什么来,然后需要放大:

1937487-20200216180658999-1477719874.png

放大以后就能看到你相对女神说的话。

但是对于学计算机的我来说,更想琢磨是怎样的流程完成的这个图。

--------------------------------------------------------------分割线--------------------------------------------------------------

我们需要用到的是PIL库中的Image,ImageDraw,ImageFont来进行操作

我们需要做的第一步就是使用Image.open()函数来读取图像,并且使用Image.load()函数来获取像素值,图像是由像素点组成的,因此我们需要获取并通过填充字体的颜色来实现改变。

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

2 img_raw =Image.open(img_path)3 img_array = img_raw.load()

当我们读取完图像并分析完以后需要新建一个画布来尽享填充。

#新建画布,并选择好使用的字体和字体大小

img_new = Image.new("RGB",img_raw.size,(0,0,0))

draw=ImageDraw.Draw(img_new)

font= ImageFont.truetype('路径',font_size)

然后我们需要不断输入“XXX",来填充文字

1 #需要不断输入“xxx”,就要用while循环yield来实现一个生成器

2 defcharacte_generator(text):3 whileTrue:4 for i inrange(len(text)):5 yield text[i]

再将字体加上颜色写入新创建的画布中

1 #给字体加上颜色写入新创建的画布中

2 for y in range(0,img_raw.size[1],font_size):3 for x inrange(0,img_raw.size[0],font_size):4 draw.text((x,y),next(ch_gen),font = font,fill = img_array[x,y],direction = None)

最后保存在图片

1 img_new.convert('RGB').save('F://love.jpeg')

这样就大功告成了。

完整代码如下:

1 from PIL importImage, ImageDraw, ImageFont2

3 font_size = 6

4 text = "情人节快乐"

5 img_path = "F://Python//1.png"

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

7 img_raw =Image.open(img_path)8 img_array =img_raw.load()9 #新建画布,并选择好使用的字体和字体大小

10 img_new = Image.new("RGB",img_raw.size,(0,0,0))11 draw =ImageDraw.Draw(img_new)12 font = ImageFont.truetype('C://Windows//Fonts//STXINGKA.TTF',font_size)13 #需要不断输入“xxx”,就要用while循环yield来实现一个生成器

14 defcharacte_generator(text):15 whileTrue:16 for i inrange(len(text)):17 yieldtext[i]18

19 ch_gen =characte_generator(text)20 #给字体加上颜色写入新创建的画布中

21 for y in range(0,img_raw.size[1],font_size):22 for x inrange(0,img_raw.size[0],font_size):23 draw.text((x,y),next(ch_gen),font = font,fill = img_array[x,y],direction =None)24 img_new.convert('RGB').save('F://love.jpeg')

内容来源于网络如有侵权请私信删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值