编程

extract-static-wallpapers-from-wallpaperengine

试用

从 Wallpaper Engine 的 scene.pkg 文件(PKGV0023/PKGV0024 格式)中提取静态壁纸 PNG 图片,含全部 mipmap 分辨率层级。当用户提供 scene.pkg 路径并要求提取壁纸、素材、纹理时触发。

它能做什么

从 Wallpaper Engine 的 scene.pkg 文件(PKGV0023/PKGV0024 格式)中提取静态壁纸 PNG 图片,含全部 mipmap 分辨率层级。当用户提供 scene.pkg 路径并要求提取壁纸、素材、纹理时触发。

技能文档

提取 Wallpaper Engine 静态壁纸

概述

从 Wallpaper Engine .pkg 文件(PKGV0023/PKGV0024 格式)中提取全部资源,并从 .tex 纹理文件中恢复嵌入的 PNG 壁纸图像(含多级 mipmap)。两种版本的二进制结构完全一致,仅 magic 版本号不同。

PKGV00xx 文件格式

二进制格式由 Header + 条目元信息 + 数据区组成:

Header (16 bytes)

偏移大小类型说明
04uint32条目数量
48bytesMagic "PKGV0023" 或 "PKGV0024"
124uint32Header 标志(通常等于条目数)

每个条目的元信息(字段间无对齐填充)

偏移大小类型说明
04uint32文件名长度 (N)
4Nbytes文件名 (UTF-8, 无填充)
4+N4uint32数据偏移(相对于 data_start)
8+N4uint32数据大小 (bytes)

关键细节: 文件名后没有 4 字节对齐填充,两个 uint32 紧跟在文件名之后。

数据区

所有文件数据起始于 data_start = 元信息结束位置。条目中存储的 offset 是相对于 data_start 而非文件开头。

.tex 纹理格式

Wallpaper Engine .tex 文件中内嵌了多个 PNG 图像流,通常为同一纹理的多个 mipmap 分辨率(如 4K / 1080p / 540p 等)。提取方法:

  1. 扫描 PNG 签名 (\x89PNG\r\n\x1a\n)
  2. 逐 chunk 解析(IHDR -> 数据块 -> IEND)确定每个 PNG 的精确边界
  3. 逐个保存,按分辨率命名

工作流程

步骤 1:运行提取脚本

python scripts/extract_pkg.py  [输出目录]

若省略输出目录,则在 pkg 文件旁自动创建 *_extracted 目录。

脚本功能:

  • 解析 PKGV00xx 头部和条目元信息
  • 按目录结构提取全部文件
  • 扫描 .tex 文件中的嵌入 PNG,输出全部 mipmap 层级
  • 最大尺寸保存为 wallpaper.png,其余为 wallpaper_{宽}x{高}.png

步骤 2:确认主壁纸

最大尺寸的 PNG(通常 3840x2160 或 1920x1080)即为主壁纸。scene.json 可确认场景配置。

步骤 3:交付结果

通过 deliver_attachments 将提取的 PNG 交付给用户,主壁纸在前,mipmap 层级按需附加。

相关技能

Create a WeChat Official Account visual pack from a finished article, outline, brand assets, photos, or visual references. Produce a lead cover plus coordinated in-article illustrations with clear section focus and consistent visual direction for WeChat articles, WeChat post images, brand stories, product explainers, event recaps, and knowledge content.

Vulkan 渲染工程专家技能。用于 Vulkan API 设计、实现、调试、优化、Validation Error 处理、Android Vulkan 集成、Swapchain/同步/Image Layout/资源生命周期问题、图形引擎架构、Render Pass、Pipeline、Descriptor、Com...

1 次安装

Compile AI-generated pixel character references and separately named action sheets into deterministic, validated game assets. Use when Codex needs to inspect...

1 次安装

微信公众号排版引擎 — 把 Markdown 文章转换为可直接粘贴进公众号编辑器、粘贴后样式不丢失的 HTML(样式内联 + <span leaf=""> 包裹)。也从任意公众号文章 URL 自动提取视觉风格并生成匹配的组件库。触发词:公众号排版 / 微信排版 / 公众号文章 / gzh / 排成公众号 / 粘到公众号 / 提取风格 / 分析排版 / 模仿公众号 / 风格提取 / 主题提取 / 参考这篇文章的风格 / format for WeChat / WeChat article formatting。不适用于:PPT/幻灯片(用 x-design)、UI 原型设计(用 x-design

3 次安装

Render an approved card content package into real, platform-sized image files, route generative work through a recoverable backend when needed, inspect every...

2 次安装