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

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

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

文件结构如下:
pyhton 创建一个透明背景的文字图片_第1张图片
安装依赖包 (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’) 结果如下:

pyhton 创建一个透明背景的文字图片_第2张图片

你可能感兴趣的:(python,python,pillow)