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