RePKG 使用指南:一步解压 Wallpaper Engine PKG 包并转换 TEX 纹理为图片
【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkg
RePKG 是一个用 C# 编写的命令行工具,专门用于解压 Wallpaper Engine 的 PKG 资源包,并把 TEX 纹理转换成常见图片格式。适合想整理壁纸收藏的人,以及需要检查、复用包内资源的开发者。
快速上手:安装 RePKG 并跑通第一条命令
RePKG 发布的是一个单文件可执行程序,不需要安装任何运行时依赖。先克隆仓库:
git clone https://gitcode.com/gh_mirrors/re/repkg克隆后进入目录,运行仓库自带的Publish.bat(需要 Visual Studio 的命令行环境),它会在Publish文件夹里打出一个单独的RePKG.exe和RePKG.zip,复制到哪里就能在哪里用。
拿到程序后,对任意一个 PKG 文件执行:
repkg extract scene.pkg -o ./output这条命令把scene.pkg里的所有条目解压到./output目录。你会看到控制台逐条打印* Extracting: 文件路径,其中每个 TEX 纹理除了原文件,还会多生成一张转换后的图片和一份.tex-json元数据文件。处理完打印Done。
功能拆解
解压 PKG 资源包:repkg extract 命令详解
PKG 是 Wallpaper Engine 的打包格式,里面的资源平时看不到也拿不到。extract命令负责把它们全部取出来,并支持按扩展名过滤:
repkg extract -e png,tex -s E:\Games\steamapps\workshop\content\123-e png,tex表示只提取扩展名为 png 和 tex 的文件,用逗号分隔多个;-s表示所有文件平铺到一个目录,不保留包内的路径结构。如果你输入的是目录而不是单个文件,RePKG 会自动找到该目录下的所有 PKG 逐个处理,加-r则可以递归搜索所有子文件夹。
把 TEX 纹理转换成 PNG 和 GIF 图片
TEX 是 Wallpaper Engine 的纹理格式,里面有原始像素数据(RGBA8888、R8、RG88)也有 DXT1/3/5 压缩数据,直接用图片软件打不开。RePKG 会在解压时自动转换:原始像素格式统一输出为 PNG,带动画帧的纹理按帧合成输出为 GIF。单独批量转换一个目录里的 TEX 文件:
repkg extract -t -s E:\path\to\dir\with\tex\files-t表示把输入目录中的所有 TEX 文件转成图片,结果连同各自的.tex-json描述文件一起存到./output。每张转换后的图片尺寸、格式等信息都写在对应的 json 里,方便你核对。
把 PKG 还原成 Wallpaper Engine 项目
很多壁纸包在 Workshop 里的project.json配置文件是加密的,拿不到明文。RePKG 可以把包旁边未加密的project.json和预览图一起复制出来,拼成一个能直接打开的本地项目:
repkg extract -c -n E:\Games\steamapps\workshop\content\123-c把每个 PKG 旁边的project.json和preview.jpg复制到输出目录;-n用配置文件里的名称(而不是数字 id)作为子文件夹名。产物存放在./output/项目名/下,纹理、配置、预览图齐全,放进 Wallpaper Engine 的项目目录即可加载。
查看包内容:repkg info 命令详解
不想解压、只想看看包里有什么,用info命令。它只解析包的文件头,不解压数据,几乎不占磁盘:
repkg info -e scene.pkg --title-filter "Ocean"-e打印包内每个条目的路径和字节数;--title-filter "Ocean"只处理标题包含该关键词的项目,没有project.json的包不受影响。加-p title,author还可以只输出配置文件中指定的字段,-b size让条目按大小排序,方便定位包里的"大块头"。
真实场景走一遍
壁纸收藏整理:从整个 Workshop 目录批量提取 TEX
假设你的 Workshop 内容目录E:\Games\steamapps\workshop\content\123下有几百个壁纸项目,每个项目是一个子文件夹(里面有xxx.pkg、project.json、preview.jpg),你只想把所有纹理转成图片存起来。
repkg extract -e tex -s -o D:\tex_output E:\Games\steamapps\workshop\content\123这条命令的逐条含义:-e tex只提取 TEX 条目,其他文件全部跳过;-s让所有文件平铺到D:\tex_output这一个目录里,不按原路径分散;-o D:\tex_output指定输出位置。跑完后你会得到一个全是图片的扁平目录,每张图旁还有一份.tex-json记录来源格式和尺寸,方便后续二次处理。已存在的文件默认跳过,不会覆盖你之前转换的结果,想覆盖就加--overwrite。
开发流水线:批量重建可编辑的壁纸项目
如果你是开发者,想把 Workshop 里的壁纸改一改再发布,就需要每个包都带上project.json和预览图,组成合法的项目结构。
repkg extract -c -n D:\projects E:\Games\steamapps\workshop\content\123-c负责复制每个 PKG 旁边的project.json和preview.jpg;-n让输出文件夹用项目名命名,而不是难记的数字 id。执行后D:\projects下会生成一个子文件夹对应一个壁纸项目,内部结构:解压出的纹理(TEX 已转成图片)+ 配置文件 + 预览图。把这些文件夹拷进 Wallpaper Engine 的projects目录,每个都能作为独立项目打开和编辑。
它凭什么快/稳
先读索引表,再按需取数。PKG 的文件结构是:一段魔数标识,紧跟着条目索引表(每个条目记录文件路径、数据偏移量和长度),之后才是文件数据本体。RePKG 的解析器(见 RePKG.Application/Package/PackageReader.cs)先完整读取索引表,再按偏移量逐个定位数据块。这带来一个直接的好处:info命令只读索引表就能列出整个包的内容和每个文件的大小,不需要把数据区搬进内存,GB 级的包也能快速"报数"。
核心逻辑与格式处理分层隔离。项目拆成三个部分:RePKG.Core只定义数据模型和接口,RePKG.Application实现解析与格式转换,RePKG只是命令行入口。格式支持集中在一个枚举里维护:原始像素格式 3 种(RGBA8888、R8、RG88)、DXT 压缩格式 3 种、外加 BMP、JPG、PNG、TGA、GIF、DDS 等几十种通用图片格式。这意味着新增一种格式或修复一个解析 bug,改动范围被限制在 Application 层的一个文件内,而不是散落各处。
常见问题
支持哪些 TEX 格式?
原始像素数据(RGBA8888、R8、RG88)会被统一转换成 PNG 输出;TEX 内部本身就是 BMP、JPG、PNG 这类图片格式的,按原格式保存;带多帧动画的纹理会逐帧裁切、拼接后输出为 GIF。目前暂不支持 DXT 压缩纹理的转图,遇到会直接报错而不是静默跳过。
不解压就能查看包内容吗?
可以。repkg info -e 文件.pkg只解析文件头的索引表,打印每个条目的完整路径和字节数,配合-b size按大小排序、--title-filter按标题过滤,几秒钟就能摸清一个大包的结构,磁盘上不留任何产物。
只想提取部分文件怎么办?
用extract的--onlyexts(-e)和--ignoreexts(-i)按扩展名过滤,两者都是逗号分隔的列表,比如-e png,json只留图片和配置。注意info命令的-e是另一个含义(打印条目列表),别混用。
结语
RePKG 把"PKG 解压"和"TEX 转图"两件事做进了一个约百 KB 的单文件程序里,命令不多但每个都够用:extract干活,info查账,-c还你项目配置。仓库提供了交互式模式(运行repkg interactive)和完整的测试用例,遇到问题可以直接对照源码报 issue。
【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkg
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考