feat(fallback image): use extracted assets to get image
This commit is contained in:
21
config.yaml
21
config.yaml
@@ -1,15 +1,7 @@
|
|||||||
operators:
|
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:
|
chen:
|
||||||
common_name: placeholder
|
common_name: placeholder
|
||||||
|
fallback_name: char_1012_skadi2_2
|
||||||
preview: preview.jpg
|
preview: preview.jpg
|
||||||
project_json: project.json
|
project_json: project.json
|
||||||
release_folder: ./release/{name}/
|
release_folder: ./release/{name}/
|
||||||
@@ -17,8 +9,19 @@ operators:
|
|||||||
target_folder: ./operator/{name}/processed/
|
target_folder: ./operator/{name}/processed/
|
||||||
title: Ch'en the Holungday
|
title: Ch'en the Holungday
|
||||||
use_skel: true
|
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:
|
skadi:
|
||||||
common_name: dyn_illust_char_1012_skadi2
|
common_name: dyn_illust_char_1012_skadi2
|
||||||
|
fallback_name: char_1012_skadi2_2
|
||||||
preview: preview.jpg
|
preview: preview.jpg
|
||||||
project_json: project.json
|
project_json: project.json
|
||||||
release_folder: ./release/{name}/
|
release_folder: ./release/{name}/
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ class AlphaComposite:
|
|||||||
def __open_image(self):
|
def __open_image(self):
|
||||||
self.image = Image.open(self.image_path)
|
self.image = Image.open(self.image_path)
|
||||||
self.mask = Image.open(self.mask_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_image = self.image.load()
|
||||||
self.loaded_mask = self.mask.load()
|
self.loaded_mask = self.mask.load()
|
||||||
|
|
||||||
@@ -30,3 +33,7 @@ class AlphaComposite:
|
|||||||
for x in range(self.mask.size[0]):
|
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.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))
|
||||||
|
|||||||
@@ -21,12 +21,16 @@ class Builder:
|
|||||||
self.__release_file(operator_name)
|
self.__release_file(operator_name)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
return
|
||||||
|
|
||||||
def build_assets(self, operator_name):
|
def build_assets(self, operator_name):
|
||||||
|
|
||||||
use_skel = self.config["operators"][operator_name]["use_skel"]
|
use_skel = self.config["operators"][operator_name]["use_skel"]
|
||||||
source_path = self.config["operators"][operator_name]["source_folder"].format(name=operator_name)
|
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)
|
target_path = self.config["operators"][operator_name]["target_folder"].format(name=operator_name)
|
||||||
common_name = self.config["operators"][operator_name]["common_name"]
|
common_name = self.config["operators"][operator_name]["common_name"]
|
||||||
|
fallback_name = self.config["operators"][operator_name]["fallback_name"]
|
||||||
file_paths = dict(
|
file_paths = dict(
|
||||||
json=target_path + common_name + ".json",
|
json=target_path + common_name + ".json",
|
||||||
atlas=target_path + common_name + ".atlas",
|
atlas=target_path + common_name + ".atlas",
|
||||||
@@ -62,13 +66,19 @@ class Builder:
|
|||||||
),
|
),
|
||||||
daemon=True,
|
daemon=True,
|
||||||
)
|
)
|
||||||
|
fallback_thread = threading.Thread(
|
||||||
|
target=AlphaComposite,
|
||||||
|
args=(source_path + fallback_name, target_path + "../fallback"),
|
||||||
|
daemon=True,
|
||||||
|
)
|
||||||
|
|
||||||
ar_thread.start()
|
ar_thread.start()
|
||||||
skeleton_binary_thread.start()
|
skeleton_binary_thread.start()
|
||||||
|
fallback_thread.start()
|
||||||
ar_thread.join()
|
ar_thread.join()
|
||||||
atlas_base64_thread.start()
|
atlas_base64_thread.start()
|
||||||
|
|
||||||
# alpha composite
|
# alpha composite for live 2d assets
|
||||||
for item in ar.images:
|
for item in ar.images:
|
||||||
alpha_composite_thread = threading.Thread(
|
alpha_composite_thread = threading.Thread(
|
||||||
target=AlphaComposite,
|
target=AlphaComposite,
|
||||||
@@ -121,10 +131,12 @@ class Builder:
|
|||||||
json_base64_thread.start()
|
json_base64_thread.start()
|
||||||
json_base64_thread.join()
|
json_base64_thread.join()
|
||||||
|
|
||||||
|
# join remaining threads
|
||||||
for thread in png_to_base64_threads:
|
for thread in png_to_base64_threads:
|
||||||
thread.join()
|
thread.join()
|
||||||
|
|
||||||
atlas_base64_thread.join()
|
atlas_base64_thread.join()
|
||||||
|
fallback_thread.join()
|
||||||
|
|
||||||
jsonContent = prefix + str(data)
|
jsonContent = prefix + str(data)
|
||||||
with open(operator_file, "w") as f:
|
with open(operator_file, "w") as f:
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class Config:
|
|||||||
source_folder=str,
|
source_folder=str,
|
||||||
target_folder=str,
|
target_folder=str,
|
||||||
common_name=str,
|
common_name=str,
|
||||||
|
fallback_name=str,
|
||||||
release_folder=str,
|
release_folder=str,
|
||||||
project_json=str,
|
project_json=str,
|
||||||
preview=str,
|
preview=str,
|
||||||
|
|||||||
Reference in New Issue
Block a user