520表白----python 文字生成图片

工科生滴浪漫~

环境 pycharm + PIL库

PIL库是用来进行图像处理的库,它可以将图片读为类,非常简单方便地对图形进行处理。需要注意的是,安装的命令是pip install pillow

原图: QAQ~~~太撩了啊。wsl
在这里插入图片描述
效果图: 要不要这么给力啊!!!酷
在这里插入图片描述
代码:

#  导入必要模块
import os
from PIL import Image, ImageFont, ImageDraw
# 读取图片,填充文字,图片和文字的属性
str_out = '我爱你'      #str_out是我们打算将图片用什么文字填满
imin = Image.open("./图片.jpg","r")  #imin是获取的我们将要处理的图片
height = imin.height  #height和width分别为图片的高和宽
width = imin.width
#获取字体,填充的文字用什么字体显示,
#三个变量分别问字体文件,字体大小,字体编码方式,可根据个人喜好和图片效果改变
# 字体默认文件夹在C:\\WINDOWS\\Fonts\\
font=ImageFont.truetype('C:\\WINDOWS\\Fonts\\STXINGKA.TTF',5, encoding="unic")
#获得字体的宽和高
font_w,font_h=font.getsize(str_out[0])
#设置输出图片的颜色通道、大小及底色
imout = Image.new("RGB",(imin.width,imin.height),'black')
# 处理图片
colors = []
k = 0
#按字体大小,逐像素替换为对应颜色的文字
for i in range(0, imin.height, font_h):
    color = []
    for j in range(0, imin.width, font_w):
        pixel = imin.getpixel((j,i))#得到每个像素的坐标 
        color.append((pixel[0],pixel[1],pixel[2]))#记录像素颜色信息
    colors.append(color)#将每个像素的颜色信息存储到colors种
draw = ImageDraw.Draw(imout)#创建Draw对象以对imout进行操作
for i in range(0, imin.height, font_h): 
    k = 0 
    for j in range(0, imin.width, font_w):
        #逐个将图片中的各像素用文字替代
        draw.text([j, i],str_out[k],colors[i // font_h][j // font_w], font)
        k += 1
        k %= len(str_out)
#输出图片
imout.save("图片2.png", encoding='utf-8')

祝有情人终成眷属呀!!!

参考链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值