pyhton 创建一个透明背景的文字图片

pyhton 创建一个透明背景的文字图片

注意: 依赖字体链接,请点击:pyhton 创建一个透明背景的文字图片源代码-包含Kaiti.ttf 字体文件

文件结构如下:
在这里插入图片描述
安装依赖包 (Pillow==10.0.1):

pip install Pillow

代码带注释:

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
import base64
from io import BytesIO


def generate_sign(text):
    # 创建一个新的白色透明图片
    img = Image.new('RGBA', (300, 150), (255, 255, 255, 0))
    # 创建Draw对象,用于在图片上绘图
    draw = ImageDraw.Draw(img)
    # 选择一个字体和大小
    font = ImageFont.truetype('Kaiti.ttf', 66)
    # 在图片上写入文字
    draw.text((10, 10), text, font=font, fill=(0, 0, 0))
    # 创建一个BytesIO对象,它是内存中的一个文件,可以像普通文件一样进行读写操作,但实际上数据是存储在内存中的;
    img_io = BytesIO()
    # 将图片保存到BytesIO对象(存放至内存中)
    img.save(img_io, 'png')
    # 从BytesIO中获取图片数据,返回一个字节串(bytes)
    img_byte = img_io.getvalue()
    # 将图像数据编码为base64字符串
    img_data = base64.b64encode(img_byte).decode('utf-8')
    # 将base64字符串转换为Data URL 格式
    img_url = "data:image/png;base64," + img_data
    # 把字符串编码为byte格式
    img_url_b = img_url.encode()
    # 将生成的图片保存到本地
    # img.save('test.png')
    return img_url_b


if __name__ == "__main__":
    generate_sign('张三')

纯净版(去除注释):

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
import base64
from io import BytesIO


def generate_sign(text):
    img = Image.new('RGBA', (300, 150), (255, 255, 255, 0))
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype('Kaiti.ttf', 66)
    draw.text((10, 10), text, font=font, fill=(0, 0, 0))
    img_io = BytesIO()
    img.save(img_io, 'png')
    img_byte = img_io.getvalue()
    img_data = base64.b64encode(img_byte).decode('utf-8')
    img_url = "data:image/png;base64," + img_data
    img_url_b = img_url.encode()
    # img.save('test.png')
    return img_url_b

if __name__ == "__main__":
    generate_sign('张三')


img.save(‘test.png’) 结果如下:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大脑经常闹风暴@小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值