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)