32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import pathlib
|
|
from PIL import Image
|
|
|
|
class AlphaComposite:
|
|
|
|
def __init__(self, image_path: str, save_path) -> None:
|
|
if image_path.strip().endswith(".png") is True:
|
|
image_path = image_path.replace(".png", "")
|
|
if save_path.strip().endswith(".png") is False:
|
|
save_path += ".png"
|
|
self.image_path = pathlib.Path.cwd().joinpath(image_path + ".png")
|
|
self.mask_path = pathlib.Path.cwd().joinpath(image_path + "[alpha].png")
|
|
self.save_path = save_path
|
|
self.image = None
|
|
self.mask = None
|
|
self.loaded_image = None
|
|
self.loaded_mask = None
|
|
self.__open_image()
|
|
self.__alpha_composite()
|
|
pass
|
|
|
|
def __open_image(self):
|
|
self.image = Image.open(self.image_path)
|
|
self.mask = Image.open(self.mask_path)
|
|
self.loaded_image = self.image.load()
|
|
self.loaded_mask = self.mask.load()
|
|
|
|
def __alpha_composite(self):
|
|
for y in range(self.mask.size[1]):
|
|
for x in range(self.mask.size[0]):
|
|
self.loaded_image[x, y] = (self.loaded_image[x, y][0], self.loaded_image[x, y][1], self.loaded_image[x, y][2], self.loaded_mask[x, y][2])
|
|
self.image.save(pathlib.Path.cwd().joinpath(self.save_path)) |