add support to compress bme json
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import os
|
||||
import common
|
||||
import PIL, PIL.Image
|
||||
|
||||
# the config for thumbnail
|
||||
@ -12,29 +13,29 @@ def resize_image(src_file: str, dst_file: str) -> None:
|
||||
# save to new file
|
||||
src_image.save(dst_file)
|
||||
|
||||
def relative_to_folder(abs_path: str, src_parent: str, dst_parent: str) -> str:
|
||||
return os.path.join(dst_parent, os.path.relpath(abs_path, src_parent))
|
||||
|
||||
def create_thumbnails() -> None:
|
||||
# get folder path
|
||||
root_folder: str = os.path.dirname(os.path.dirname(__file__))
|
||||
raw_icons_folder: str = os.path.join(root_folder, 'raw_icons')
|
||||
icons_folder: str = os.path.join(root_folder, 'icons')
|
||||
|
||||
# iterate raw icons folder
|
||||
for root, dirs, files in os.walk(raw_icons_folder, topdown = True):
|
||||
# iterate folder and create it in dest folder
|
||||
for name in dirs:
|
||||
src_folder: str = os.path.join(root, name)
|
||||
dst_folder: str = relative_to_folder(src_folder, raw_icons_folder, icons_folder)
|
||||
print(f'Creating Folder: {src_folder} -> {dst_folder}')
|
||||
os.makedirs(dst_folder, exist_ok = True)
|
||||
for name in files:
|
||||
if not name.endswith('.png'): continue # skip non-image
|
||||
src_file: str = os.path.join(root, name)
|
||||
dst_file: str = relative_to_folder(src_file, raw_icons_folder, icons_folder)
|
||||
print(f'Processing Thumbnail: {src_file} -> {dst_file}')
|
||||
resize_image(src_file, dst_file)
|
||||
# prepare handler
|
||||
def folder_handler(src_folder: str, dst_folder: str) -> None:
|
||||
# just create folder
|
||||
print(f'Creating Folder: {src_folder} -> {dst_folder}')
|
||||
os.makedirs(dst_folder, exist_ok = True)
|
||||
def file_handler(src_file: str, dst_file: str) -> None:
|
||||
# skip non-image
|
||||
if not src_file.endswith('.png'): return
|
||||
# call thumbnail func
|
||||
print(f'Processing Thumbnail: {src_file} -> {dst_file}')
|
||||
resize_image(src_file, dst_file)
|
||||
|
||||
# call common processor
|
||||
common.common_file_migrator(
|
||||
os.path.join(root_folder, 'raw_icons'),
|
||||
os.path.join(root_folder, 'icons'),
|
||||
folder_handler,
|
||||
file_handler
|
||||
)
|
||||
|
||||
print('Done.')
|
||||
|
||||
|
Reference in New Issue
Block a user