Created
June 23, 2023 13:24
-
-
Save nekochanfood/5ff5469961241e0f001678a816ced73a to your computer and use it in GitHub Desktop.
UnityPackageにサムネを埋め込む
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# python main.py -p XXXXXX.unitypackage -i XXXXXX.png | |
import argparse | |
import tempfile | |
import os | |
import sys | |
from shutil import unpack_archive | |
from shutil import make_archive | |
import stat | |
from PIL import Image | |
if __name__ == "__main__": | |
parser = argparse.ArgumentParser() | |
parser.add_argument("-p", type=str, default=0, | |
help="Path of UnityPackage") | |
parser.add_argument("-i", type=str, default=0, | |
help="Thumbnail Path") | |
args = parser.parse_args() | |
if(len(sys.argv) == 1): | |
print("no arguments") | |
exit() | |
temp_directory = tempfile.TemporaryDirectory() | |
patched_str = "PATCHED_" | |
try: | |
unpack_archive(filename=args.p, extract_dir=temp_directory.name, format="gztar") | |
except OSError: | |
print("Failed to Unpack") | |
exit() | |
imagePath = os.path.join(temp_directory.name,".icon.png") | |
# 128x128より上の解像度の画像を使うとどうなるかわかんないので強制的に128x128にしてる | |
img = Image.open(args.i) | |
if img.size[0] != 128 or img.size[1] != 128 : | |
img = img.resize(128,128) | |
img.save(imagePath) | |
unityPackageName = (patched_str + os.path.splitext(os.path.basename(args.p))[0]) | |
unityPackageDir = os.path.dirname(args.p) | |
gztarPath = make_archive(base_name=unityPackageName,root_dir=temp_directory.name,format="gztar") | |
patchedUnityPackagePath = os.path.join(unityPackageDir,gztarPath.replace('.tar.gz', '') + ".unitypackage") | |
if os.path.isfile(patchedUnityPackagePath): | |
os.remove(patchedUnityPackagePath) | |
os.rename(gztarPath,patchedUnityPackagePath) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment