noneplugin / nonebot-plugin-imageutils

Nonebot2 PIL工具插件
MIT License
44 stars 6 forks source link

nonebot-plugin-imageutils

本仓库将在一段时间后停止维护

推荐使用 非NoneBot插件的版本 pil-utils

非插件版除没有配置项外,与插件版功能基本一致

功能

安装

nb plugin install nonebot_plugin_imageutils
pip install nonebot_plugin_imageutils

配置字体

本插件选择了一些不同系统上的字体,以支持更多的字符

对于 Ubuntu 系统,建议安装 fonts-noto 软件包 以支持中文字体和 emoji

并将简体中文设置为默认语言:(否则会有部分中文显示为异体(日文)字形,详见 ArchWiki

sudo apt install fonts-noto
sudo locale-gen zh_CN zh_CN.UTF-8
sudo update-locale LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8
fc-cache -fv

默认备选字体列表如下:

"Arial", "Tahoma", "Helvetica Neue", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", "Noto Sans CJK JP", "WenQuanYi Micro Hei", "Apple Color Emoji", "Noto Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"

可在 .env.* 文件中添加 default_fallback_fonts 变量 来自定义备选字体

字体文件需要在系统目录下,或放置于自定义字体路径中

自定义字体路径默认为机器人运行目录下的 data/fonts/ 文件夹,

可在 .env.* 文件中添加 custom_font_path 变量 自定义字体路径

其他插件可以通过 nonebot_plugin_imageutils/fonts.py 中的 add_font 函数往字体文件夹中添加字体

使用示例

from nonebot_plugin_imageutils import BuildImage

# output: BytesIO
output = BuildImage.new((300, 300)).circle().draw_text((30, 30, 270, 270), "测试ymddl😂").save_jpg()

1.jpg

from nonebot_plugin_imageutils import Text2Image

# img: PIL.Image.Image
img = Text2Image.from_text("@mnixry 🤗", 50).to_image()

# 以上结果为 PIL 的 Image 格式,若要直接 MessageSegment 发送,可以转为 BytesIO
output = BytesIO()
img.save(output, format="png")
await matcher.send(MessageSegment.image(output))

2.png

from nonebot_plugin_imageutils import text2image

# img: PIL.Image.Image
img = text2image("N[size=40][color=red]o[/color][/size]neBo[size=30][color=blue]T[/color][/size]\n[align=center]太强啦[/align]")

# 以上结果为 PIL 的 Image 格式,若要直接 MessageSegment 发送,可以转为 BytesIO
output = BytesIO()
img.save(output, format="png")
await matcher.send(MessageSegment.image(output))

3.png

目前支持的 BBCode 标签:

特别感谢