明天就是情人节了,程序猿们肯定生活中被吐槽的不少,小编也经常被吐槽是直男,不会聊天,不浪漫等等。是不是觉得很憋屈呢,想当年我也是做过8x8x8的led表白神器的人。不过现在因为病毒的影响,大家身边应该没有这些硬件设施,那么今天我就分享一下怎么用程序猿的方式跟女神表白,好了我们进入正题。
女神照片首先我们先从女神的朋友圈借一张美美哒的照片,这里我就先用我女神的照片(像素1920x1200)
先看一下最终的效果吧
我们将生成的照片点击放大(Surprise!!!)
其实整个过程并不复杂,只有区区不到30行的代码,原理也很简单
我们都知道每张图片都是由像素点组成的,每个像素点都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255,(0,0,0)代表白色,(255,255,255)代表黑色,也就是我们常说的RGB值
这里我在强调一下,使用的照片最好像素高一点,不然会肉眼看到明显的锯齿感
实现的思路就一句话:只要每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。
首先,使用 pillow.Image读取图像,并使用load函数获取到每一个像素值,没有这个模块的可以先安装一下
img_raw = Image.open(img_path) img_array = img_raw.load() 12
然后新建一张画布,并选好你要使用的字体和字体大小
#字体颜色 img_new = Image.new("RGB", img_raw.size, (0, 0, 0)) draw = ImageDraw.Draw(img_new) #字体,可以使用windows系统自带的 font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size) 12345
这里字体其实是可以使用系统自带的字体,都在这个路径下:C:/Windows/fonts/
这些字体都可以选
然后由于需要不断循环 “我喜欢你!”,这五个字符(字符串可以自己自定义)。这里可以使用while循环 yield 来实现一个生成器
def character_generator(text): while True: for i in range(len(text)): yield text[i] 1234'
接下来,我们要给这些字加上相应的颜色,写入新创建的画布中
for y in range(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) 123
最后我们把生成的图片保存下来
img_new.convert('RGB').save("output.jpg") 1 完整代码
from PIL import Image, ImageDraw, ImageFont font_size = 7 text = "我喜欢你!" img_path = "input.jpg" img_raw = Image.open(img_path) img_array = img_raw.load() img_new = Image.new("RGB", img_raw.size, (0, 0, 0)) draw = ImageDraw.Draw(img_new) font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size) def character_generator(text): while True: for i in range(len(text)): yield text[i] ch_gen = character_generator(text) for y in range(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("output.jpg")
12345678910111213141516171819202122232425最后祝大家情人节快乐,表白成功!!!
相关知识
python表白玫瑰花绘制——情人节表白
2024经典浪漫的表白鲜花花束,表白女神轻松成功
python浪漫表白,表白代码——绘制3D玫瑰花
当众送花圈表白女神,这样的傻呆蠢男必须拯救!
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)
程序员的浪漫!用Python实现表白代码!
七夕最浪漫的表白,最真挚的感情(Python代码实现)
七夕节表白之汽车后备鲜花装饰
python玫瑰花代码简单
python玫瑰花代码讲解
网址: python表白女神 https://m.huajiangbk.com/newsview691245.html
上一篇: 生日惊喜怎么选?一束鲜花足以说尽 |
下一篇: 2月14日,浪漫无限循环! |