feat(fallback image): use extracted assets to get image

This commit is contained in:
Haoyu Xu
2021-08-02 17:28:55 -04:00
parent 0b56c2343f
commit dcf1855d9c
4 changed files with 34 additions and 11 deletions

View File

@@ -1,15 +1,7 @@
operators:
nian:
common_name: placeholder
preview: preview.jpg
project_json: project.json
release_folder: ./release/{name}/
source_folder: ./operator/{name}/extracted/
target_folder: ./operator/{name}/processed/
title: Nian
use_skel: true
chen:
common_name: placeholder
fallback_name: char_1012_skadi2_2
preview: preview.jpg
project_json: project.json
release_folder: ./release/{name}/
@@ -17,8 +9,19 @@ operators:
target_folder: ./operator/{name}/processed/
title: Ch'en the Holungday
use_skel: true
nian:
common_name: placeholder
fallback_name: char_1012_skadi2_2
preview: preview.jpg
project_json: project.json
release_folder: ./release/{name}/
source_folder: ./operator/{name}/extracted/
target_folder: ./operator/{name}/processed/
title: Nian
use_skel: true
skadi:
common_name: dyn_illust_char_1012_skadi2
fallback_name: char_1012_skadi2_2
preview: preview.jpg
project_json: project.json
release_folder: ./release/{name}/

View File

@@ -22,6 +22,9 @@ class AlphaComposite:
def __open_image(self):
self.image = Image.open(self.image_path)
self.mask = Image.open(self.mask_path)
if self.image.size != self.mask.size:
# resize mask
self.mask = self.__resize(self.mask, self.image.size[0], self.image.size[1])
self.loaded_image = self.image.load()
self.loaded_mask = self.mask.load()
@@ -29,4 +32,8 @@ class AlphaComposite:
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))
self.image.save(pathlib.Path.cwd().joinpath(self.save_path))
# resize image
def __resize(self, image, width: int, height: int):
return image.resize((width, height))

View File

@@ -21,12 +21,16 @@ class Builder:
self.__release_file(operator_name)
return
def stop(self):
return
def build_assets(self, operator_name):
use_skel = self.config["operators"][operator_name]["use_skel"]
source_path = self.config["operators"][operator_name]["source_folder"].format(name=operator_name)
target_path = self.config["operators"][operator_name]["target_folder"].format(name=operator_name)
common_name = self.config["operators"][operator_name]["common_name"]
fallback_name = self.config["operators"][operator_name]["fallback_name"]
file_paths = dict(
json=target_path + common_name + ".json",
atlas=target_path + common_name + ".atlas",
@@ -62,13 +66,19 @@ class Builder:
),
daemon=True,
)
fallback_thread = threading.Thread(
target=AlphaComposite,
args=(source_path + fallback_name, target_path + "../fallback"),
daemon=True,
)
ar_thread.start()
skeleton_binary_thread.start()
fallback_thread.start()
ar_thread.join()
atlas_base64_thread.start()
# alpha composite
# alpha composite for live 2d assets
for item in ar.images:
alpha_composite_thread = threading.Thread(
target=AlphaComposite,
@@ -121,10 +131,12 @@ class Builder:
json_base64_thread.start()
json_base64_thread.join()
# join remaining threads
for thread in png_to_base64_threads:
thread.join()
atlas_base64_thread.join()
fallback_thread.join()
jsonContent = prefix + str(data)
with open(operator_file, "w") as f:

View File

@@ -18,6 +18,7 @@ class Config:
source_folder=str,
target_folder=str,
common_name=str,
fallback_name=str,
release_folder=str,
project_json=str,
preview=str,