English | 简体中文
在用户浏览器本地解析 Wallpaper Engine 的 .pkg(桌面)/ .mpkg(安卓)壁纸包,也支持单独的 .tex 贴图文件;提取 jpg / png / mp4 / webm 及包内任意资源;支持 .tex 解码转换与动画贴图重编码为 APNG / GIF;一切行为均在本地进行,与网站服务器无关,可静态部署。示例网站
- 拖拽 / 选择 / Ctrl+V 粘贴
.pkg/.mpkg/.tex文件,最大接近 2GB(解析只读目录表,包体不驻留内存) - 条目列表 + 图片/视频缩略预览 + 大图弹窗
.tex → jpg/png/mp4自动转换(可关闭,关闭则原样导出.tex);视频纹理(TEX 里包着 mp4)零拷贝原样导出为.mp4- 纹理层级可选:默认只导最高分辨率,也可勾选同时导出 mip 链的低层级(文件名加
.mipN后缀) - 动画贴图(带帧表的
.tex)重编码为单个 APNG(无损、保留透明)或 GIF(256 色、体积小),也可两者都出;一帧颜色数 ≤255 时 GIF 用精确调色板,逐像素无损(平涂/矢量风格壁纸基本都满足) - 多选卡片:选中文件一键下载 / 打包为 ZIP
- 单文件下载 / 保留目录结构的 ZIP 批量打包(流式写出,不把整包读进内存)
- 展示方式可切换:按文件类型归组(图片/视频/音乐/JSON/其他)或按目录结构浏览包内路径,选择会被记住;目录模式下面包屑逐级可点,左方向键退到上级目录
- 筛选(图片/视频/JSON)、
project.json元数据卡片
cd WallpaperEngine-PKG-Extractor-Web
npm install
npm run dev-
克隆此项目
git git clone https://github.com/CelestialDomeStarPole/WallpaperEngine-PKG-Extractor-Web.git在项目根目录下执行
npm run build
产物在
dist/,将dist/上传到 GitHub Pages / Cloudflare Pages / 任意静态托管即可,无后端、无网络请求。 -
或者fork此项目 Cloudflare 链接你的账户并选择fork后的仓库进行Pages部署
| 类别 | 内容 |
|---|---|
| 框架预设 | 无 |
| 构建命令 | npm run build |
| 输出目录 | dist |
| 根目录 | 留空 |
- 克隆此项目并将文件夹上传至 Cloudflare Workers 部署
- 或者fork此项目 Cloudflare 链接你的账户并选择fork后的仓库进行workers部署
| 类别 | 内容 |
|---|---|
| 构建命令 | npm run build |
| 部署命令 | npx wrangler deploy |
| 版本命令 | npx wrangler versions upload |
| 根目录 | / |
- 加密pkg支持
- 容器与 TEX 布局逐字节翻写自 notscuffed/repkg(MIT)
- 实测动画贴图(
flags & 4):所有帧共用一张雪碧图,帧表的x/y/width/height是该图内的源格子(像素单位),TEXS0003的gifWidth/gifHeight才是输出画布尺寸,frametime单位为秒 - 第二期加密支持:在
src/core/adapter.ts注册新ContainerAdapter(PKGv1/v2:AES-CTR keystream + 逐文件 zlib),核心流程无需改动。
- Workshop 加密包(
PKGv1/v2)暂不支持,第二期提供 - 不支持
.webm/.mp4之外的视频特殊格式 - PKGV(桌面
.pkg)/ PKGM(安卓.mpkg)目录表的偏移字段是 int32,因此 >2GB 的包在格式层面就无法存在,这类文件会被直接拒绝 - 单个动画重编码输出超过 200MB 时自动回退为第 0 帧 PNG,并弹窗说明原因
- 动画贴图只导最高层级(重编码按整张雪碧图进行),层级勾选不影响它
- GIF 单帧最多 256 色:超过时走分桶 + 中位切分 + 有序抖动,有轻微量化误差(要完全保真请选 APNG)