1
0
Fork 0

feat: add gaussian multiply to mask filters

This commit is contained in:
Sean Sube 2023-01-15 14:04:54 -06:00
parent f00f36b5b1
commit 40080ad46b
3 changed files with 21 additions and 5 deletions

View File

@ -14,7 +14,20 @@ def mask_filter_none(mask_image: Image, dims: Tuple[int, int], origin: Tuple[int
return noise
def mask_filter_gaussian(mask_image: Image, dims: Tuple[int, int], origin: Tuple[int, int], rounds=3) -> Image:
def mask_filter_gaussian_multiply(mask_image: Image, dims: Tuple[int, int], origin: Tuple[int, int], rounds=3) -> Image:
'''
Gaussian blur with multiply, source image centered on white canvas.
'''
noise = mask_filter_none(mask_image, dims, origin)
for i in range(rounds):
blur = noise.filter(ImageFilter.GaussianBlur(5))
noise = ImageChops.multiply(noise, blur)
return noise
def mask_filter_gaussian_screen(mask_image: Image, dims: Tuple[int, int], origin: Tuple[int, int], rounds=3) -> Image:
'''
Gaussian blur, source image centered on white canvas.
'''

View File

@ -32,7 +32,8 @@ from typing import Any, Dict, Tuple, Union
from .image import (
expand_image,
# mask filters
mask_filter_gaussian,
mask_filter_gaussian_multiply,
mask_filter_gaussian_screen,
mask_filter_none,
# noise sources
noise_source_gaussian,
@ -92,7 +93,8 @@ noise_sources = {
}
mask_filters = {
'none': mask_filter_none,
'gaussian': mask_filter_gaussian,
'gaussian-multiply': mask_filter_gaussian_multiply,
'gaussian-screen': mask_filter_gaussian_screen,
}

View File

@ -36,6 +36,7 @@ export const NOISE_LABELS: Record<string, string> = {
};
export const MASK_LABELS: Record<string, string> = {
gaussian: 'Gaussian Blur',
none: 'None',
'none': 'None',
'gaussian-multiply': 'Gaussian Multiply',
'gaussian-screen': 'Gaussian Screen',
};