阴影透明度、颜色读取修复
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-13 20:35:13 +08:00
parent 5e01e086f2
commit 605407549b

View File

@ -4,6 +4,7 @@ from PIL import ImageEnhance
from PIL import ImageChops
from PIL import ImageOps
import cv2
from nonebot import logger
from konabot.common.path import FONTS_PATH
from konabot.plugins.fx_process.color_handle import ColorHandle
@ -625,20 +626,20 @@ class ImageFilterImplement:
y_offset: int = 10,
blur: float = 10,
opacity: float = 0.5,
shadow_color = "black") -> Image.Image:
shadow_color: str = "black") -> Image.Image:
if image.mode != 'RGBA':
image = image.convert('RGBA')
offset = (-x_offset, -y_offset)
# 创建阴影图层
shadow_rgb = ColorHandle.parse_color(shadow_color)
logger.debug(f"Shadow color RGB: {shadow_rgb}")
shadow = Image.new('RGBA', image.size, (0, 0, 0, 0))
shadow_draw = ImageDraw.Draw(shadow)
shadow_draw.rectangle(
[0, 0, image.size[0], image.size[1]],
fill=(shadow_rgb[0], shadow_rgb[1], shadow_rgb[2], int(255 * opacity))
)
# 填充阴影颜色
shadow_draw.rectangle([(0, 0), image.size], fill=(shadow_rgb[0], shadow_rgb[1], shadow_rgb[2], 255))
# 应用遮罩
shadow.putalpha(image.split()[-1])
alpha = image.split()[-1].point(lambda p: p * opacity)
shadow.putalpha(alpha)
# 移动
shadow = shadow.transform(
shadow.size,