Python情人节表白女神代码(修订版)

家电修理 2023-07-16 19:16www.caominkang.com电器维修

Python情人节表白女神代码(修订版)

引言又是一年一度的情人节来临之际,最近后台私信不断,槽点20年初写的表白女神代码无法调试出结果,临时加更本篇内容(对每一行进行了注释解析,自定义妥妥保姆级教程),电脑维修网希望能帮到有需求的伙伴们。文末有彩蛋喔!

1.前置准备
  • Python3.x
  • Python第三方库Pillo
  • 勤劳的双手,清晰的头脑
  • Cmd中安装第三方库(pip install Pillo),使用镜像源提速,如果不会配备镜像,请戳此处简单配置镜像使pip安装第三方库提速100倍
  • Pycharm中安装,具体流程自行百度
2.图片选择

选择我心目中草原无所不能的角色作为此篇的题材

ps这里的图片选择清晰度越高处理后的细节效果越佳,我这边条件有限只找到张高清的做演示

处理效果,细节这里就不做展示了,代码下方已给出,自行调试出来更有感觉。

3.源码贡献

流程简述

其实整个过程并不复杂,纯代码只有区区不到30行的代码,原理也很简单
我们都知道每张图片都是由像素点组成的,每个像素点都有自己的颜色,
其颜色可以用一个数组来表示(a,b,c),其中每位数的取值范围都是 0-255,(0,0,0)代表白色,(255,255,255)代表黑色,也就是我们常说的RGB值
这里我在强调一下,使用的照片最好像素高一点,不然会肉眼看到明显的锯齿感
实现的思路就一句话只要每个像素取出一个像素值,并使用这个像素做为该字的颜色即可,在像素量够多的情况下,从远处看,是能看到我们原来图像的轮廓的。
,使用 pillo.Image读取图像,并使用load函数获取到每一个像素值

// 导包
from PIL import Image, ImageDra, ImageFont, ImageMode
// 字体大小
font_size = 7
// 背景填充字体
text = "懒羊羊"

// 图片存放位置及图片名称,建议建立独立文件夹将代码和处理的图片放在同一层级,这里给没有linux基础的铁子科普下./释义在当前目录下存在lanyy.jpg这个图层
img_path = "./lanyy.jpg"

# 导入ta的图片,我这里是懒羊羊,铁子们应该懂这里用谁的照片吧,手动狗头
img_ra = Image.open('lanyy.jpg')
# 新建一张画布
img_array = img_ra.load()

# 字体颜色,可取网上自行翻阅RGB大神调色
img_ne = Image.ne("RGB", img_ra.size, (0, 0, 0))
dra = ImageDra.Dra(img_ne)
# 字体,使用了indos系统自带的字体,为了增加代码的适配性,我使用的字体是in用户默认存在的,可以不修改直接调用
font = ImageFont.truetype('C:/Windos/fonts/Dengl.ttf', font_size)

# 然后由于需要不断循环 “懒羊羊”,这三个字符(字符串可以自己自定义,如我xx)。我这里使用hile循环 使用yield 来实现一个生成器,减少不必要的内存开支
def character_generator(text):
 hile True:
  for i in range(len(text)):
   yield text[i]


# 为字体添加相应的颜色,写入新创建的画布中
ch_gen = character_generator(text)
# 可自定义颜色,修改参数即可
for y in range(0, img_ra.size[1], font_size):
 for x in range(0, img_ra.size[0], font_size):
  dra.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)
# 将生成的图片保存在本地目录
img_ne.convert('RGB').save("olanyy.jpg")
4. 拓展修改

替换字体,选择自己喜欢的字体添加为背景墙

往期绘图

玫瑰花绘图直达链接请戳此

了解更多知识请戳下

@Author:懒羊羊

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by