From 5de4b72a6bd84d2b56d8f4b40218a2d887f3928e Mon Sep 17 00:00:00 2001 From: MixBadGun <1059129006@qq.com> Date: Sat, 13 Dec 2025 18:34:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E9=87=8F=E6=BB=A4=E9=95=9C=E8=BD=AC?= =?UTF-8?q?=E4=B8=BARGBA=E4=BB=A5=E9=81=BF=E5=85=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- konabot/plugins/fx_process/fx_handle.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/konabot/plugins/fx_process/fx_handle.py b/konabot/plugins/fx_process/fx_handle.py index 692eca6..8c81ec4 100644 --- a/konabot/plugins/fx_process/fx_handle.py +++ b/konabot/plugins/fx_process/fx_handle.py @@ -20,11 +20,17 @@ from konabot.plugins.fx_process.types import SenderInfo, StoredInfo class ImageFilterImplement: @staticmethod def apply_blur(image: Image.Image, radius: float = 10) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') + return image.filter(ImageFilter.GaussianBlur(radius)) # 马赛克 @staticmethod def apply_mosaic(image: Image.Image, pixel_size: int = 10) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') + if pixel_size <= 0: pixel_size = 1 # 缩小图像 @@ -37,26 +43,38 @@ class ImageFilterImplement: @staticmethod def apply_contour(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.CONTOUR) @staticmethod def apply_sharpen(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.SHARPEN) @staticmethod def apply_edge_enhance(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.EDGE_ENHANCE) @staticmethod def apply_emboss(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.EMBOSS) @staticmethod def apply_find_edges(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.FIND_EDGES) @staticmethod def apply_smooth(image: Image.Image) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') return image.filter(ImageFilter.SMOOTH) # 反色 @@ -97,18 +115,24 @@ class ImageFilterImplement: # 对比度 @staticmethod def apply_contrast(image: Image.Image, factor: float = 1.5) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') enhancer = ImageEnhance.Contrast(image) return enhancer.enhance(factor) # 亮度 @staticmethod def apply_brightness(image: Image.Image, factor: float = 1.5) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') enhancer = ImageEnhance.Brightness(image) return enhancer.enhance(factor) # 色彩 @staticmethod def apply_color(image: Image.Image, factor: float = 1.5) -> Image.Image: + if image.mode != 'RGBA': + image = image.convert('RGBA') enhancer = ImageEnhance.Color(image) return enhancer.enhance(factor)