大量滤镜转为RGBA以避免问题
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-13 18:34:15 +08:00
parent 1861cd4f1a
commit 5de4b72a6b

View File

@ -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)