一个用于将大图片切割成小瓦片的Python工具,适用于游戏开发、地图处理等场景。
- 🖼️ 支持多种图片格式(PNG, JPG, BMP等)
- 🔍 自动识别网格行列数
- ⚙️ 自定义瓦片尺寸
- 📍 自定义起始Y坐标
- 📝 按照
x_y格式命名瓦片 - 📁 自动创建输出文件夹
- 🛡️ 完善的错误处理和用户提示
tile-map-splitter/
├── 同志们点这里/ # 启动器目录
│ ├── Windows用户点这里.bat # Windows一键启动
│ ├── LinuxMac用户点这里.sh # Linux/Mac一键启动
│ ├── LinuxMac用户首次使用先点这里.sh # Linux/Mac权限设置
│ └── 使用说明.txt # 简化使用说明
├── codes/ # 源代码目录
│ ├── enhanced_tile_splitter.py # 增强版主程序(完整功能)
│ ├── example_generator.py # 测试图片生成器
│ └── requirements.txt # Python依赖
├── test-picture/ # 测试图片目录(运行时自动创建)
├── .gitignore # Git忽略文件
├── LICENSE # MIT许可证
├── README.md # 项目说明文档
└── git_commands.md # Git命令指南
pip install -r codes/requirements.txt或者直接安装Pillow:
pip install Pillow- 克隆或下载项目:
git clone https://github.com/ThatMrBen/tile-map-splitter.git
cd tile-map-splitter- 安装依赖:
# Windows/Linux/Mac
pip install -r codes/requirements.txt- 启动程序:
Windows:
# 双击运行
同志们点这里/Windows用户点这里.batLinux/Mac:
# 首次使用需要设置权限
双击 同志们点这里/LinuxMac用户首次使用先点这里.sh
# 然后启动
双击 同志们点这里/LinuxMac用户点这里.sh- 自动生成测试图片
- 详细的操作引导
- 边缘裁剪教学
- 智能瓦片尺寸推荐
- 适合初次使用和学习
- 直接开始切割操作
- 需要自己准备图片
- 完整的专业功能
- 适合熟练用户
- 显示欢迎界面
- 询问是否进行环境检测
- 系统环境检测(Python、依赖库、权限)
- 询问是否继续
- 教程/测试模式 或 生产模式
- 清屏后进入对应流程
- 询问是否生成测试文件
- 生成测试图片并显示教学提示
- 询问是否开始教学
- 输入图片路径(必须手动输入,无默认值)
- 输入输出目录(必须手动输入,无默认值)
- 询问是否需要裁剪图片边缘
- 如需要,依次询问:
- 上边缘裁剪多少像素
- 下边缘裁剪多少像素
- 左边缘裁剪多少像素
- 右边缘裁剪多少像素
- 显示智能推荐的瓦片尺寸
- 用户输入瓦片尺寸(格式:数字x数字)
- 检查是否能整除,不能则给出警告
- 设置起始Y值
- 显示切割进度
- 完成后显示结果
- 按任意键退出
- 支持绝对路径和相对路径
- 支持用户主目录路径(
~) - 可以直接粘贴文件夹路径
- Windows示例:
C:\Files\Codes\tile-map-splitter或.\output - Linux/Mac示例:
/home/user/projects或~/Documents或./output - 程序会自动验证目录是否存在和是否有写入权限
- 支持绝对路径和相对路径
- 支持用户主目录路径(
~) - 支持拖拽文件到命令行窗口
- 可以直接粘贴图片路径
- Windows示例:
C:\path\to\image.png或.\image.png - Linux/Mac示例:
/home/user/Pictures/image.png或~/Pictures/image.png或./image.png
- 格式:
数字x数字 - 例如:
32x32、64x64、16x24 - 必须是正整数
- 输入
y确认切割 - 输入
n取消操作
- 默认为1(直接回车使用默认值)
- 可以输入任何大于等于1的整数
- 例如:
1、10、100
- 瓦片保存在:
[用户指定目录]\[图片名]_tiles\ - 命名格式:
x_y.png- x:列号,从1开始递增
- y:行号,从起始Y值开始递增
- 文件格式:PNG
- 生成测试图片:
python codes/example_generator.py- 运行切割器:
python codes/tile_map_splitter.py- 输入示例:
- 输出目录:直接回车(使用默认路径)
- 图片路径:
test-picture/example_tilemap.png - 瓦片尺寸:
32x32 - 确认切割:
y - 起始Y值:直接回车(默认为1)
- 结果:
- 网格:4列 x 3行
- 生成12个瓦片:
1_1.png 2_1.png 3_1.png 4_1.png 1_2.png 2_2.png 3_2.png 4_2.png 1_3.png 2_3.png 3_3.png 4_3.png
程序会在以下情况终止运行:
- 图片文件不存在或无法打开
- 瓦片尺寸格式不正确
- 瓦片尺寸过大(无法切割出任何瓦片)
- 起始Y值不是有效数字
- 用户选择取消操作
- 如果图片尺寸不能被瓦片尺寸整除,剩余部分将被忽略
- 程序会显示剩余像素的提示信息
- 输出文件夹会自动创建,如果已存在会覆盖同名文件
- 建议在切割前备份原图片
- Python 3.6+
- Pillow库
- 支持Windows、macOS、Linux
- 支持标准Windows路径格式:
C:\path\to\file - 支持相对路径:
.\folder\file
- 支持Unix路径格式:
/path/to/file - 支持用户主目录:
~/Documents/file - 支持相对路径:
./folder/file
- 自动处理路径分隔符
- 支持用户主目录展开(
~) - 跨平台的文件权限检查
欢迎提交Issue和Pull Request!
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
如果这个工具对你有帮助,请给个⭐️支持一下!