diff --git a/konabot/plugins/fx_process/fx_handle.py b/konabot/plugins/fx_process/fx_handle.py index 396e73b..acc8165 100644 --- a/konabot/plugins/fx_process/fx_handle.py +++ b/konabot/plugins/fx_process/fx_handle.py @@ -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,