1 Star 2 Fork 0

打补丁的狮子 / guitar_365_practice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
tool_cutimages.py 5.66 KB
一键复制 编辑 原始数据 按行查看 历史
打补丁的狮子 提交于 2023-10-14 22:09 . 调整资源
from __defines__ import *
import shutil
from functions import Logger
from PIL import Image
def cut_images(is_elec: bool):
# 原始资源路径
ORIGIN_SRC_FULLPATH = (
ORIGIN_ELECTRIC_GUITAR_RESOURCES_ABS_DIR
if is_elec
else ORIGIN_ACOUSTIC_GUITAR_RESOURCES_ABS_DIR
)
# 输出路径
OUTPUT_DIR = os.path.join(
ELECTRIC_GUITAR_RESOURCES_ABS_DIR
if is_elec
else ACOUSTIC_GUITAR_RESOURCES_ABS_DIR,
RESUORECE_DIR_NAME,
)
# 清空已有的路径和文件
if os.path.exists(OUTPUT_DIR):
shutil.rmtree(OUTPUT_DIR)
# 重建路径和文件
os.makedirs(OUTPUT_DIR)
# 裁剪的范围高度(电吉他)
CUT_RANGES_ELEC = [
# Type1
1024, # 0
570, # 1
566, # 2
582, # 3
# Type0
416, # 4
588, # 5
565, # 6
565, # 7
669, # 8
]
# 裁剪的范围高度(木吉他)
CUT_RANGES_ACOUSTIC = [
# Type1
762, # 0
461, # 1
457, # 2
459, # 3
# Type0
296, # 4
476, # 5
456, # 6
458, # 7
533, # 8
]
CUT_RANGES = CUT_RANGES_ELEC if is_elec else CUT_RANGES_ACOUSTIC
OFFSET = 10
for root, dirs, files in os.walk(ORIGIN_SRC_FULLPATH, topdown=False):
for file_name in files:
if file_name.endswith(".jpg"):
num = file_name.replace(
"365日!电吉他手的养成计划_" if is_elec else "365日!木吉他手的养成计划_", ""
)
num = int(num.replace(".jpg", "")) - 1
type = num % 2 # 1是每周第一页,0是每周第二页
week = int((num + 1) / 2)
# if 1 == type:
# Logger.debug(f"{week} --> {_names['weeks'][str(week)]}")
# continue
output_path = f"{OUTPUT_DIR}/第{week}周"
if not os.path.exists(output_path):
os.makedirs(output_path)
full_path = os.path.join(root, file_name)
img = Image.open(full_path)
Logger.info(
f"切割图片({img.width}, {img.height}) {file_name}{output_path}"
)
Logger.info(f"切割参数{CUT_RANGES}")
if 1 == type:
rect = [0, 0, img.width, CUT_RANGES[0]]
Logger.info(f"切割每天练习图片({rect}/({img.width}, {img.height})")
region = img.crop(rect)
region.save(f"{output_path}/每天练习.jpg")
rect[1] = rect[1] + CUT_RANGES[0]
rect[3] = rect[1] + CUT_RANGES[1]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周一图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周一.jpg")
rect[1] = rect[1] + CUT_RANGES[1]
rect[3] = rect[1] + CUT_RANGES[2]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周二图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周二.jpg")
rect[1] = rect[1] + CUT_RANGES[2]
rect[3] = rect[1] + CUT_RANGES[3]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周三图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周三.jpg")
if 0 == type:
rect = [0, 0, img.width, CUT_RANGES[4]]
Logger.info(f"切割提示图片({rect}/({img.width}, {img.height})")
region = img.crop(rect)
region.save(f"{output_path}/提示.jpg")
rect[1] = rect[1] + CUT_RANGES[4]
rect[3] = rect[1] + CUT_RANGES[5]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周四图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周四.jpg")
rect[1] = rect[1] + CUT_RANGES[5]
rect[3] = rect[1] + CUT_RANGES[6]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周五图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周五.jpg")
rect[1] = rect[1] + CUT_RANGES[6]
rect[3] = rect[1] + CUT_RANGES[7]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周六图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周六.jpg")
rect[1] = rect[1] + CUT_RANGES[7]
rect[3] = rect[1] + CUT_RANGES[8]
realrect = (rect[0], rect[1] - OFFSET, rect[2], rect[3] + OFFSET)
Logger.info(f"切割周天图片({realrect}/({img.width}, {img.height})")
region = img.crop(realrect)
region.save(f"{output_path}/周天.jpg")
cut_images(True)
cut_images(False)
Python
1
https://gitee.com/PatchLion_admin/guitar_365_practice.git
git@gitee.com:PatchLion_admin/guitar_365_practice.git
PatchLion_admin
guitar_365_practice
guitar_365_practice
dev

搜索帮助