Plist+PNG 解包工具一款专业的纹理图集解包工具,支持将 **TexturePacker plist**、**JSON** 以及 **Godot AtlasTexture (.tres)** 三种主流图集格式还原为独立的精灵图片(支持996打包格式)
# UnpackPlist Plist解包工具未注册时界面:
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,图片切割工具,大图分小图
已注册界面:
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,图片切割工具,大图分小图
批量处理界面:
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,图片切割工具,大图分小图
## 产品概述
UnpackPlist 是一款专业的纹理图集解包工具,支持将 **TexturePacker plist**、**JSON** 以及 **Godot AtlasTexture (.tres)** 三种主流图集格式还原为独立的精灵图片。完美处理旋转精灵、偏移还原和透明通道保持,广泛应用于游戏资源提取、美术素材还原、跨引擎资源迁移等场景。
## 核心功能
### 1. 图集格式解析
支持三大主流图集格式,自动识别 / 用户切换:
| 格式 | 关键字段 | 说明 |
|------|----------|------|
| **TexturePacker plist (Format 3)** | `textureRect`, `textureRotated`, `spriteSourceSize`, `spriteOffset` | TexturePacker 较新版本默认输出格式 |
| **TexturePacker plist (Format 2)** | `frame`, `rotated`, `sourceSize`, `offset` | TexturePacker 旧版本 / cocos2d 常见格式 |
| **JSON 图集** | `frame`, `rotated`, `spriteSourceSize`, `spriteSize` | TexturePacker JSON / Unity / Phaser / PixiJS 常用格式 |
| **Godot AtlasTexture (.tres)** | `region = Rect2(...)`, `margin = Rect2(...)`, `path="res://..."` | Godot 3.x 与 Godot 4.x 引擎专用 AtlasTexture 资源 |
- Plist 格式自动识别 Format 2 / Format 3,无需用户手动选择
- 兼容处理 XML plist 中的 `<!DOCTYPE>` 声明(自动剥离,避免解析错误)
- 支持解析嵌套的坐标字符串格式:`{{x,y},{w,h}}` 和 `{a,b}`
- Godot `.tres` 同时兼容 Godot 3 (`Rect2( )` 带空格) 和 Godot 4 (`Rect2()`) 两种语法
- Godot 模式下 PNG 路径自动从 `[ext_resource path="res://..."]` 解析定位
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,批量图片切割工具,批量大图分小图 ... ... ... ... . ...
### 2. 精灵图片提取
- **纹理裁剪**:从大图集中精确裁剪每个精灵的纹理区域
- **旋转还原**:自动检测旋转标记,对旋转精灵执行逆时针90°旋转还原
- **偏移还原**:根据 `spriteOffset` / `offset` 信息,将精灵放置到原始尺寸画布的正确位置
- **尺寸还原**:输出图片使用原始 `spriteSourceSize` / `sourceSize` 尺寸,而非裁剪后的紧凑尺寸
### 3. Alpha 通道完美保持
整个处理流水线全程采用 32位 ARGB 像素格式:
```
PNG加载 → 32位Bitmap(保留Alpha) → 裁剪 → 旋转 → 偏移定位 → 合成 → PNG输出(保留Alpha)
```
- 使用 `ScanLine` 逐行像素操作,避免 GDI 的 Alpha 丢失问题
- 旋转操作在原始像素级别完成(非 GDI/GDI+ 变换)
- 输出 PNG 采用 `COLOR_RGBALPHA` 8位色深,确保透明信息完整
### 4. 单文件模式
- 选择一对 `.plist` + `.png` / `.json` + `.png` 文件
- Godot 模式下:可选择单个 `.tres` 文件(自动展开为同目录引用同一 PNG 的所有 `.tres`),也可直接选择 / 拖入包含 `.tres` 的文件夹
- 指定输出文件夹
- 一键解包所有精灵到输出目录
- 自动以精灵原始文件名命名输出图片
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,批量图片切割工具,批量大图分小图 ... ... ... ... . ...
### 5. 批量模式
- 选择包含多对 plist+png / json+png 文件的文件夹
- 自动匹配同名的描述文件和 `.png` 文件
- Godot 模式下:扫描文件夹及一级子目录的所有 `.tres`,按引用 PNG 自动分组,每张大图只加载一次
- 递归处理所有匹配的文件对
- 实时日志显示处理进度
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,批量图片切割工具,批量大图分小图 ... ... ... ... . ...
### 6. Godot AtlasTexture 解包(v1.2.0 新增)
完整支持 pngPacker 等工具导出的 Godot 引擎 `.tres` 资源解包:
- **自动解析 PNG 引用**:从 `.tres` 内的 `path="res://..."` 自动定位对应 PNG(支持 `.tres` 同目录、父目录、父父目录三级回溯查找)
- **region 字段**:精确裁切图集区域
- **margin 字段**:根据 trim 偏移还原到原始尺寸的画布位置
- **智能分组**:选中一个 `.tres` 自动展开为同目录所有引用同一 PNG 的精灵;选中文件夹则按引用 PNG 自动分组输出到 `<输出目录>\<png_stem>\`
- **拖入支持**:拖入 `.tres` 文件或包含 `.tres` 的文件夹时自动切换到 Godot 模式
### 7. 文件拖拽支持
- 支持将文件或文件夹直接拖拽到界面上
- 智能识别拖拽目标:自动判断落点所在的输入框
- 拖拽 `.plist` / `.json` / `.tres` 文件时自动切换格式并填充关联路径
- 拖拽包含 `.tres` 的文件夹时自动切换到 Godot 模式
- 拖拽文件夹时自动设置输出目录
## 使用场景
1. **游戏开发**:提取已有游戏包中的精灵图集,用于学习或资源复用
2. **美术素材还原**:从 TexturePacker 图集还原独立精灵,方便二次编辑
3. **资源审计**:检查打包后的图集是否包含所有预期精灵
4. **逆向工程**:分析第三方游戏/应用的图片资源结构
5. **素材迁移**:将 cocos2d/Unity 项目的图集资源迁移到其他引擎
## 技术特点
1. **三大格式兼容**:同时支持 TexturePacker plist (Format 2/3)、JSON、Godot AtlasTexture (.tres),自动识别 / 一键切换
2. **像素级精度**:所有图像操作使用 32位 ARGB ScanLine,确保每个像素精确还原
3. **鲁棒性裁剪**:CopyBmpRect32 函数内置完整的边界检查(负坐标、越界等),不会因异常 plist 数据崩溃
4. **高效旋转**:逆时针90°旋转采用直接像素映射,无插值损失
5. **DTD 安全解析**:自动剥离 XML 中的 DOCTYPE 声明,避免 MSXML 的 DTD 限制错误
6. **Godot 智能分组**:批量解包 Godot 资源时按引用 PNG 自动分组,每张大图只加载一次,性能高
7. **防破解保护**:内置多层反调试检测(调试器API、进程扫描、窗口检测、断点检测、内存完整性校验)+ 后台监控线程
### 操作流程
**单文件模式:**
1. 根据图集类型勾选 `使用JSON格式` 或 `Godot (.tres)`(不勾选默认 Plist;两者互斥)
2. 选择或拖拽描述文件:
- Plist/JSON:自动填充同名 `.png`
- Godot:可选 `.tres` 文件或包含 `.tres` 的文件夹(PNG 自动解析)
3. 选择输出文件夹(不选则默认在描述文件同目录下创建 output)
4. 点击"开始解包"
5. 在日志中查看提取进度和结果
**批量模式(需注册):**
1. 切换到"批量解包"模式
2. 根据图集类型勾选格式
3. 选择或拖拽包含描述文件 + png 的文件夹(Godot 模式扫描 `.tres`)
4. 选择输出文件夹
5. 点击"开始解包"
6. 工具自动匹配 / 分组所有文件并逐一处理
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,批量图片切割工具,批量大图分小图 ... ... ... ... . ...
### v1.1.0 更新详情
**1. JSON 格式支持**
新增对 JSON + PNG 图集的解包支持,兼容 Unity、Phaser、PixiJS 等引擎的纹理图集格式:
- 界面新增“使用JSON格式”复选框(默认不勾选,读取Plist)
- 勾选后自动切换为读取 `.json + .png` 文件组合
- 拖拽 `.json` 文件时自动切换到JSON模式
- 批量模式下根据格式选择搜索 `*.json` 或 `*.plist`
**2. footOffset 字段解析与导出**
支持解析 pngPacker 打包的包含脚底坐标偏移的图集:
- 自动解析 plist/JSON 中的 `footOffset` 字段
- 解包时在输出目录创建 `Placements` 子目录
- 导出与图片同名的 `.txt` 坐标文件(第一行X坐标,第二行Y坐标)
**输出目录结构示例:**
```
输出目录/
├── hero_idle_01.png
├── hero_idle_02.png
└── Placements/
├── hero_idle_01.txt # 内容: -88\n-99
└── hero_idle_02.txt
```
Plist+PNG 解包工具 UnpackPlist(TextureUnPacker) ,批量图片切割工具,批量大图分小图 ... ... ... ... ...
**与 pngPackerGUI 的配套使用:**
解包后的图片和 Placements 坐标可直接作为 pngPackerGUI 的输入,重新打包时坐标会自动调整,实现完整的打包↔解包往返工作流。
PNG纹理图集打包工具PngPackerGUI_V3.0,支持Cocos2d、Unity、Phaser等主流游戏引擎_依星源码资源网,依星资源网 -

链接: https://pan.baidu.com/s/1c3zLv0VAN_HTTrPayuI2Cw
提取码下载:
百度网盘下载:
链接: https://pan.baidu.com/s/1B_RHGVKFINC1w5xXkvwyew 提取码: 2t5f
蓝奏云下载地址:
https://net188.lanzout.com/b009huurrc
密码:fp8k
|