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’) 结果如下:

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2023-12-27 21:58:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-27 21:58:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-27 21:58:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-27 21:58:02       20 阅读

热门阅读

  1. sed常用简说

    2023-12-27 21:58:02       36 阅读
  2. Spring系列:基于Spring-Jdbc实现事务

    2023-12-27 21:58:02       29 阅读
  3. 简述 tcp 和 udp的区别?

    2023-12-27 21:58:02       35 阅读
  4. python哈希算法实现

    2023-12-27 21:58:02       39 阅读
  5. 【资源】stable diffusion常用checkpoint

    2023-12-27 21:58:02       38 阅读
  6. 教你轻松看懂以太网报文

    2023-12-27 21:58:02       36 阅读
  7. python——sort函数sorted函数以及lambda函数

    2023-12-27 21:58:02       28 阅读
  8. Unix常用命令整理

    2023-12-27 21:58:02       41 阅读
  9. SpringMVC之异常处理

    2023-12-27 21:58:02       40 阅读
  10. UBX M8T-10 DSP开发和NMEA解析

    2023-12-27 21:58:02       42 阅读