绘制 RasterScene¶
RasterScene 适合无需 HTML 布局的矩形与纯色场景。Pillow 和 Skia 分别提供独立Capability,但接受同一组后端中立命令。
from nonebot_plugin_htmlrender import get_default_application
from nonebot_plugin_htmlrender.graphics import (
FillRect,
PixelRect,
RasterEncodeOptions,
RasterScene,
RenderRasterSceneRequest,
RGBAColor,
)
renderer = get_default_application().extensions.pillow
request = RenderRasterSceneRequest(
scene=RasterScene(
width=320,
height=180,
background=RGBAColor(255, 255, 255),
commands=(
FillRect(
PixelRect(x=24, y=24, width=128, height=72),
RGBAColor(229, 57, 53, 192),
),
),
),
output=RasterEncodeOptions(format="png"),
)
image = await renderer.render(request)
坐标使用物理像素与左闭右开矩形,超出画布的部分会裁剪;命令按 tuple 顺序使用source-over 合成。两个 backend 不保证生成相同 bytes 或逐 channel 完全一致。
安装、启用方式与共享预算见 Graphics 后端,完整模型与错误契约见 Capability 参考。可运行项目位于examples/graphics_render。