Compare commits

...

5 Commits

Author SHA1 Message Date
751297e3bc Merge branch 'master' into feature/doubao-watermark 2025-11-07 21:17:09 +08:00
b450998f3f 让豆包水印使用相对大小 2025-11-07 21:15:19 +08:00
ae6297b98d Merge pull request '添加豆包水印' (#46) from feature/doubao-watermark into master
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #46
2025-11-07 19:18:41 +08:00
dacae29054 添加豆包水印 2025-11-07 19:18:24 +08:00
8acb546c6a Merge pull request '让浏览器等久一点' (#42) from feature/konaweb into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #42
2025-11-07 02:41:49 +08:00
3 changed files with 34 additions and 0 deletions

BIN
assets/img/meme/doubao.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -34,6 +34,7 @@ from konabot.plugins.memepack.drawing.saying import (
draw_pt,
draw_suan,
)
from konabot.plugins.memepack.drawing.watermark import draw_doubao_watermark
from nonebot.adapters import Bot, Event
@ -342,3 +343,16 @@ async def _(quote: str, author: str, img: PIL_Image):
)
await quote_cmd.send(await UniMessage().image(raw=out).export())
doubao_cmd = on_alconna(Alconna(
"豆包水印",
Args["image?", Image | None],
))
@doubao_cmd.handle()
async def _(img: PIL_Image):
result = await draw_doubao_watermark(img)
result_bytes = BytesIO()
result.save(result_bytes, format="PNG")
await doubao_cmd.send(await UniMessage().image(raw=result_bytes).export())

View File

@ -0,0 +1,20 @@
import PIL
import PIL.Image
from konabot.common.path import ASSETS_PATH
from konabot.common.utils.to_async import make_async
doubao_watermark = PIL.Image.open(ASSETS_PATH / "img" / "meme" / "doubao.png").convert("RGBA")
@make_async
def draw_doubao_watermark(base: PIL.Image.Image) -> PIL.Image.Image:
base = base.copy().convert("RGBA")
w = base.size[0] / 768 * 140
h = base.size[0] / 768 * 40
x = base.size[0] / 768 * 160
y = base.size[0] / 768 * 60
w, h, x, y = map(int, (w, h, x, y))
base.alpha_composite(doubao_watermark.resize((w, h)), (base.size[0] - x, base.size[1] - y))
return base