Skip to content
On this page

文字生成的图片

此方法可以将文字转换为图片发送,使用调色模板可以进行文字调色,亦可插入图片渲染。

Chain().text_image()

参数名类型释义默认值
textstr内容文本
imagesList[ImageElem]插入图片None
widthint图片宽度None
heightint图片高度None
bgcolorstr图片背景色#F5F5F5
python
Chain(data).text_image('hello, world')

调色模板

在文本内使用 [cl 文字内容@#颜色代码 cle] 格式的模板,将指定文字内容改变颜色。

python
@bot.on_message(keywords='hello')
async def _(data: Message):
    return Chain(data).text(f'hello [cl {data.nickname}@#ff0000 cle]')
image

text_image 无法插入表情

如果 Chain.text 的文本内使用了调色模板,将会强制转换为图片。同时 [face:ID] 模板也会失效。

渲染图片

在 images 参数内传入一个包含 ImageElem 对象的列表,可在文字图片内渲染图片。

ImageElem

参数名类型释义默认值
pathstr图片路径
sizeint图片大小
pos(int, int)图片渲染位置 (x, y)

简单尝试一下,发送一张 hello, world 的文字图片,并在里面插入一张图片。
需要注意的是,因为 hello, world 文字只有一行,所以需要指定一下图片高度。否则插入的图片可能会显示不全。
你可以一次插入很多张图片,所以任何时候,都请把握好你的文字图片宽高与插入的图片的大小、坐标之间的影响。

python
from amiyabot.builtin.lib.imageCreator import ImageElem


@bot.on_message(keywords='hello')
async def _(data: Message):
    image = ImageElem(path='face.png', size=80, pos=(0, 20))

    return Chain(data).text_image('hello,world', images=[image], height=100)

你可以收到如下的回复

image

更换字体

可以使用自己的 ttf 字体文件更换字体

python
from amiyabot.builtin.lib.imageCreator import FontStyle

FontStyle.file = './font.ttf'