This commit is contained in:
@ -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,
|
||||
|
||||
Reference in New Issue
Block a user