资讯动态

RePKG深度指南:Wallpaper Engine PKG提取与TEX转换完整工作流

发布时间:2026/8/21 17:31:17 来源:尧图企业网站定制
RePKG深度指南Wallpaper Engine PKG提取与TEX转换完整工作流【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkgRePKG 是一款用 C# 编写的命令行工具用于解包 Wallpaper Engine 的 PKG 资源包并把其中的 TEX 纹理转换为 PNG/GIF 图像适合需要分析、归档或二次创作壁纸资源的开发者和进阶用户。它通过逆向工程实现了 PKG 与 TEX 两种私有格式的读写全部功能都收敛在extract和info两条命令里。 三步完成从克隆到首次提取RePKG 主程序目标框架是 .NET Framework 4.7.2见 RePKG.csproj因此 Windows 上编译最省事其他平台有两种替代路线见后文「跨平台构建」。准备构建环境平台构建方式说明WindowsMSBuild / Visual Studio直接编译 .NET Framework 项目Linux / macOS修改目标框架后dotnet build依赖包均为 netstandard2.0 兼容详见进阶章节任何平台直接改目标框架用 .NET SDK 8.0 编译为跨平台可执行文件编译与运行# 克隆源码 git clone https://gitcode.com/gh_mirrors/re/repkg cd repkg # 编译 Release 版本需要 MSBuildVisual Studio 自带 msbuild RePKG.sln /p:ConfigurationRelease产物位于RePKG/bin/Release/RePKG.exe。项目自带的 Publish.bat 会在此基础上用 ilrepack 把所有依赖合并进单个 exe 并打包 zip适合发布场景日常使用直接跑编译产物即可。第一条提取命令# 解包单个 PKGTEX 条目自动转成图像输出到 ./output RePKG.exe extract scene.pkg -o ./output执行后每个 TEX 条目会生成同名 PNG/GIF 和一个.tex-json元数据文件其余文件按原始路径原样落盘。⚙️ 看懂PKG与TEX的内部结构RePKG 能做到「一个命令解包 转图」关键是对两种格式的二进制布局做了完整解析核心实现都在 RePKG.Application/Texture/ 与 RePKG.Application/Package/。PKG一张目录表加一片数据区PKG 结构非常直白可以类比成 zip头部是「目录」尾部是「文件内容」魔数(长度前缀字符串) 条目数量 int32 └─ 每条: 完整路径(长度前缀字符串) 偏移量 int32 长度 int32 二进制数据区从表结束处开始读取时 PackageReader.cs 先按 int32 长度前缀读出魔数和路径再把偏移量 数据区起点作为 Seek 位置按长度拷贝字节。条目的类型不是存在表里的而是按文件扩展名推断.tex会触发转图逻辑。TEX双魔数校验 三段式内容一个 TEX 文件依次是魔数 1 必须是TEXV0005、魔数 2 必须是TEXI0001否则直接抛UnknownMagicException头部宽高、像素格式、标志位。格式枚举只有 6 种RGBA8888、DXT5、DXT3、DXT1、RG88、R8图像容器一张或多张图像每张带 mipmap 数据。压缩格式DXT1/3/5在读取阶段就由内置 DXT 解码器还原成原始像素后面的转图器只处理非压缩数据。动画纹理是「多帧图 帧信息表」如果头部带 IsGif 标志文件末尾还有一段帧信息容器每帧记录在纹理图集里的位置、旋转方向和帧时长。转换器按这些信息做裁剪和旋转再交给 ImageSharp 合成 GIF最后移除占位用的首帧黑帧——这就是为什么动画壁纸能从 TEX 还原成可播放的 GIF。 五个高频场景的参数组合extract的全部参数只有十个但组合起来覆盖绝大多数需求。下面按「场景 → 参数」整理最实用的几组场景命令要点输出特征解包前先看内容info -e -b size按大小排序的条目清单只要图像类资源extract -e tex,png仅指定扩展名条目还原完整壁纸项目extract -c -n附 project.json 与预览图目录内 TEX 批量转图extract -t -s扁平输出文件名不带路径覆盖重跑extract --overwrite不跳过已存在文件提取前先探查# 打印条目列表按大小排序顺便输出 project.json 全部内容 RePKG.exe info scene.pkg -e -b size -p *-b支持 name / extension / size 三种排序键--title-filter 关键字还能按 project.json 里的 title 过滤在一堆 PKG 中定位某个项目时很省事。只挑要的文件-eonlyexts和-iignoreexts都接收逗号分隔的扩展名写不写点号都行。比如extract scene.pkg -i json,txt可以在保留目录结构的同时去掉配置和文本文件避免输出目录被淹没。还原成可编辑的壁纸项目# 以 project.json 的 title 命名子文件夹并拷入 project.json 和预览图 RePKG.exe extract -c -n scene.pkg -o ./projects-c和-n配合使用时输出目录名取自 project.json 的 title做非法文件名字符清洗而不是 Workshop 的数字 ID重打包回 Wallpaper Engine 时路径可直接复用。单独处理散落的 TEX 文件extract -t 目录会把该目录下所有.tex转成图像加-r递归子目录。注意此时输出是扁平的只保留文件名适合把散资源统一归档到一个文件夹。 批量处理与跨平台构建脚本化批量解包处理整个 Workshop 内容目录时extract本身就支持目录输入传入目录会遍历子文件夹中的.pkg逐个解包-c -n -r可以一条命令把所有项目还原成带名字的文件夹无需写循环。需要更细控制时核心逻辑就是「find 循环 统一参数」#!/bin/bash # 找出所有 PKG逐个解包并转图覆盖已有输出 mkdir -p ./projects find ./workshop_content -name *.pkg | while read pkg; do RePKG.exe extract $pkg -c -n -o ./projects --overwrite done转图失败不会中断流程单条异常被捕获并打印脚本可以放心跑完整批。利用 .tex-json 做资源归档每次转图都会在同目录生成.tex-json文件记录原始 TEX 的格式与尺寸信息。做素材库时可以把这些 json 单独归入 metadata 目录日后无需重新解析 TEX 就能按格式筛选素材。跨平台构建改一行目标框架主项目锁定 net472而它的依赖ImageSharp、CommandLineParser 等都兼容 netstandard2.0所以在 Linux/macOS 上最干净的做法是升级目标框架把三个 csproj 里的TargetFramework改为net8.0删除Microsoft.CSharp引用动态类型已内置然后dotnet build -c Release即可。改动很小且不影响任何功能代码。❓ 三个常见坑现象、原因、解法重复解包时文件消失现象第二次执行同一命令部分文件没有生成控制台只有一行提示。原因默认行为是「已存在即跳过」控制台输出Skipping, already exists而不是报错。解法加--overwrite强制覆盖或换一个干净的-o输出目录。Failed to read texture现象某个 TEX 转换时抛出读图失败输出目录里没有对应图像。原因文件前段读不到TEXV0005/TEXI0001魔数说明它不是标准 Wallpaper Engine 纹理或文件已损坏。解法用十六进制编辑器核对文件头如果文件来自 PKG先跑info -e确认条目完整再单独提取该条目验证。-s 模式下同名字母打架现象用--singledir提取后比预期少的文件且目录里只有其中某一个。原因扁平化后不同子路径下的同名条目落到同一输出路径先写成功的留下后面的被跳过。解法去掉-s保留原始目录结构确需扁平输出时按子项目分多次提取到不同-o目录。收尾RePKG 的价值在于把「私有格式解析」这件事封装得足够薄两条命令、十个参数却覆盖了从单文件解包、纹理转图到整库项目还原的完整链路逆向解析逻辑又集中在少数几个 Reader 类中想扩展格式支持时入口清晰。如果你处理过它的输出也欢迎带着报错信息回到源码里对照PackageReader和TexReader定位问题——这正是这个项目结构设计的初衷。提示本文基于 v0.2.2 源码主程序目标框架 .NET Framework 4.7.2命令行选项以help extract/help info的实时输出为准程序还支持interactive参数进入交互式命令模式适合连续处理多个文件。TEX 转图仅覆盖非压缩像素格式mipmap 压缩数据会在读取阶段先行解码。【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价