批量提前swf文件中的sprite (精灵)生成png
@echo off
setlocal enabledelayedexpansion
REM 设置输入和输出目录
set "INPUT_DIR=D:\ruanjian\swf\house"
set "OUTPUT_PARENT_DIR=D:\ruanjian\swf\sprites"
set "JPEXS_PATH=D:\ruanjian\ffdec\ffdec.bat"
REM 创建输出根目录
if not exist "%OUTPUT_PARENT_DIR%" mkdir "%OUTPUT_PARENT_DIR%"
REM 遍历输入目录中的每个 .swf 文件
for %%F in ("%INPUT_DIR%\*.swf") do (
REM 获取文件名(不含扩展名)
set "FILENAME=%%~nF"
echo Processing %%F
REM 创建每个 .swf 文件的输出子目录
set "FILE_OUTPUT_DIR=%OUTPUT_PARENT_DIR%\!FILENAME!"
if not exist "!FILE_OUTPUT_DIR!" mkdir "!FILE_OUTPUT_DIR!"
REM 使用 JPEXS Free Flash Decompiler 提取精灵
call "%JPEXS_PATH%" -export sprite "!FILE_OUTPUT_DIR!" "%%F"
)
echo All files processed.
pause
筛选其中>30kb的文件
import os
import shutil
def copy_and_rename_images(input_parent_dir, output_parent_dir, min_size_kb=30):
# 创建输出根目录
os.makedirs(output_parent_dir, exist_ok=True)
# 遍历输入父目录中的每个子目录
for dir_name in os.listdir(input_parent_dir):
input_dir = os.path.join(input_parent_dir, dir_name)
if os.path.isdir(input_dir):
print(f"Processing directory: {input_dir}")
# 计算已经处理的文件数量,用于文件名的序号
file_count = 1
# 遍历每个子目录中的图片文件
for subdir_root, _, subdir_files in os.walk(input_dir):
for file_name in subdir_files:
if file_name.lower().endswith('.png'):
file_path = os.path.join(subdir_root, file_name)
file_size_kb = os.path.getsize(file_path) / 1024 # 文件大小,以KB为单位
# 检查文件是否大于80KB
if file_size_kb > min_size_kb:
# 构建新的文件名
new_file_name = f"{dir_name}_{file_count}.png"
new_file_path = os.path.join(output_parent_dir, new_file_name)
# 复制文件到目标输出子目录
shutil.copy(file_path, new_file_path)
print(f"Copied {file_path} to {new_file_path}")
# 增加文件计数
file_count += 1
print("All files processed.")
# 设置输入和输出目录的父目录
input_parent_dir = r"D:\ruanjian\swf\sprites"
output_parent_dir = r"D:\ruanjian\swf\majorrename"
# 运行函数
copy_and_rename_images(input_parent_dir, output_parent_dir)