Spaces:
Running
Running
from typing import Tuple | |
from PIL import Image, ImageFilter | |
def _pixelate(area: Image.Image, radius: int, **kwargs) -> Image.Image: | |
width, height = area.size | |
small = area.resize((width // radius, height // radius)) | |
return small.resize(area.size, Image.NEAREST) | |
def _blur(area: Image.Image, radius: int, **kwargs) -> Image.Image: | |
return area.filter(ImageFilter.GaussianBlur(radius)) | |
def _color(area: Image.Image, color: str = 'black', **kwargs) -> Image.Image: | |
return Image.new('RGB', area.size, color) | |
def censor_area(image_: Image.Image, area: Tuple[int, int, int, int], func, *args, **kwargs): | |
original_area = image_.crop(area) | |
processed_area = func(original_area, *args, **kwargs) | |
assert processed_area.size == original_area.size | |
image_.paste(processed_area, area) | |
return image_ | |