This commit is contained in:
@ -73,6 +73,7 @@ fx [滤镜名称] <参数1> <参数2> ...
|
||||
### 特殊效果滤镜
|
||||
* ```fx 设置通道 <通道=A>```
|
||||
* 可用 R、G、B、A。
|
||||
* ```fx 设置遮罩```
|
||||
* ```fx 色键 <目标颜色="rgb(255,0,0)"> <容差=60>```
|
||||
* ```fx 晃动 <最大偏移量=5> <运动模糊=False>```
|
||||
* ```fx 动图 <帧率=10>```
|
||||
|
||||
@ -1278,6 +1278,19 @@ class ImageFilterImplement:
|
||||
|
||||
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
|
||||
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_halftone,
|
||||
"设置通道": ImageFilterImplement.apply_set_channel,
|
||||
"设置遮罩": ImageFilterImplement.apply_set_mask,
|
||||
# 图像处理
|
||||
"存入图像": ImageFilterStorage.store_image,
|
||||
"读取图像": ImageFilterStorage.load_image,
|
||||
@ -62,7 +63,7 @@ class ImageFilterManager:
|
||||
"混合图像": ImageFilterImplement.apply_blend,
|
||||
"覆盖图像": ImageFilterImplement.apply_overlay,
|
||||
# 生成式
|
||||
"覆加颜色": ImageFilterImplement.generate_solid
|
||||
"覆加颜色": ImageFilterImplement.generate_solid,
|
||||
}
|
||||
|
||||
generate_filter_map = {
|
||||
|
||||
Reference in New Issue
Block a user