This commit is contained in:
@ -73,6 +73,7 @@ fx [滤镜名称] <参数1> <参数2> ...
|
|||||||
### 特殊效果滤镜
|
### 特殊效果滤镜
|
||||||
* ```fx 设置通道 <通道=A>```
|
* ```fx 设置通道 <通道=A>```
|
||||||
* 可用 R、G、B、A。
|
* 可用 R、G、B、A。
|
||||||
|
* ```fx 设置遮罩```
|
||||||
* ```fx 色键 <目标颜色="rgb(255,0,0)"> <容差=60>```
|
* ```fx 色键 <目标颜色="rgb(255,0,0)"> <容差=60>```
|
||||||
* ```fx 晃动 <最大偏移量=5> <运动模糊=False>```
|
* ```fx 晃动 <最大偏移量=5> <运动模糊=False>```
|
||||||
* ```fx 动图 <帧率=10>```
|
* ```fx 动图 <帧率=10>```
|
||||||
|
|||||||
@ -1278,6 +1278,19 @@ class ImageFilterImplement:
|
|||||||
|
|
||||||
return Image.fromarray(image_arr, 'RGBA')
|
return Image.fromarray(image_arr, 'RGBA')
|
||||||
|
|
||||||
|
# 设置遮罩
|
||||||
|
def apply_set_mask(image: Image.Image, mask_image: Image.Image) -> Image.Image:
|
||||||
|
if image.mode != 'RGBA':
|
||||||
|
image = image.convert('RGBA')
|
||||||
|
|
||||||
|
if mask_image.mode != 'L':
|
||||||
|
mask_image = mask_image.convert('L')
|
||||||
|
|
||||||
|
# 应用遮罩
|
||||||
|
image.putalpha(mask_image.resize(image.size, Image.Resampling.LANCZOS))
|
||||||
|
|
||||||
|
return image
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_empty(image: Image.Image, images: list[Image.Image], width: int = 512, height: int = 512) -> Image.Image:
|
def generate_empty(image: Image.Image, images: list[Image.Image], width: int = 512, height: int = 512) -> Image.Image:
|
||||||
# 生成空白图像
|
# 生成空白图像
|
||||||
|
|||||||
@ -51,6 +51,7 @@ class ImageFilterManager:
|
|||||||
"形状描边": ImageFilterImplement.apply_shape_stroke,
|
"形状描边": ImageFilterImplement.apply_shape_stroke,
|
||||||
"半调": ImageFilterImplement.apply_halftone,
|
"半调": ImageFilterImplement.apply_halftone,
|
||||||
"设置通道": ImageFilterImplement.apply_set_channel,
|
"设置通道": ImageFilterImplement.apply_set_channel,
|
||||||
|
"设置遮罩": ImageFilterImplement.apply_set_mask,
|
||||||
# 图像处理
|
# 图像处理
|
||||||
"存入图像": ImageFilterStorage.store_image,
|
"存入图像": ImageFilterStorage.store_image,
|
||||||
"读取图像": ImageFilterStorage.load_image,
|
"读取图像": ImageFilterStorage.load_image,
|
||||||
@ -62,7 +63,7 @@ class ImageFilterManager:
|
|||||||
"混合图像": ImageFilterImplement.apply_blend,
|
"混合图像": ImageFilterImplement.apply_blend,
|
||||||
"覆盖图像": ImageFilterImplement.apply_overlay,
|
"覆盖图像": ImageFilterImplement.apply_overlay,
|
||||||
# 生成式
|
# 生成式
|
||||||
"覆加颜色": ImageFilterImplement.generate_solid
|
"覆加颜色": ImageFilterImplement.generate_solid,
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_filter_map = {
|
generate_filter_map = {
|
||||||
|
|||||||
Reference in New Issue
Block a user