为 HarmonyOS 应用生成应用商店上架海报(介绍截图)。用 hdc/uitest 在真机上构建部署、模拟操作截取各页面截图,结合描述文案合成手机(1080×1920, 9:16)、平板(1920×1280, 3:2)、PC(1920×1080, 16:9)三种规格海报,产物存工程 store-posters/ 目录并加入 .gitignore。当用户提到"生成海报""商店截图""介绍截图""AppGallery 上架图""宣传图""store screenshots"时使用。
hmos-store-poster
为 HarmonyOS 应用生成 AppGallery 上架海报(介绍截图)。通过 hdc/uitest 在真机上构建部署、模拟操作截取各页面截图,再结合描述文案合成手机、平板、PC 三种规格的海报。
当用户提到「生成海报」「商店截图」「介绍截图」「AppGallery 上架图」「宣传图」「store screenshots」时触发本 skill。
目录结构
hmos-store-poster/
├── SKILL.md # Skill 定义文件(agent 执行流程)
├── README.md # 本文件(面向仓库访客)
├── LICENSE # Apache License 2.0
└── scripts/
├── make-poster.ps1 # Windows 海报合成(PowerShell + System.Drawing)
└── make-poster.py # macOS / Linux 海报合成(Python + Pillow)
前置条件
公共依赖(所有平台)
| 依赖 | 说明 |
|---|---|
| hdc(HarmonyOS Device Connector) | 真机通信、截屏、uitest,随 DevEco Studio / OpenHarmony SDK 安装 |
| DevEco Studio / OpenHarmony SDK | 构建 hap 包,HarmonyOS 官方 |
| 真机 | 已开启开发者模式、USB 连接的 HarmonyOS 设备 |
| 中文字体 | 渲染标题/副标题用,详见下表 |
平台专属依赖
| 平台 | 合成脚本 | 运行时依赖 | 中文字体 |
|---|---|---|---|
| Windows | scripts/make-poster.ps1 |
PowerShell 5.1+ + System.Drawing(均 Windows 自带,无第三方依赖) | Microsoft YaHei(中文 Windows 默认内置) |
| macOS | scripts/make-poster.py |
Python 3.8+ + Pillow(pip install Pillow) |
PingFang SC(苹方,macOS 系统默认) |
| Linux | scripts/make-poster.py |
Python 3.8+ + Pillow | 需手动安装 Noto Sans CJK SC 或 WenQuanYi Micro Hei |
字体说明:字体缺失会静默回退到系统默认字体,可能导致中文排版错位。
- Windows 用 Microsoft YaHei,无需额外操作;
- macOS 用 PingFang SC,系统默认含此字体;
- Linux 需
apt install fonts-noto-cjk或fonts-wqy-microhei;- macOS / Linux 可用
--font-family <字体名>显式指定字体。
hdc 定位
| 平台 | 探测顺序(命中即用) |
|---|---|
| Windows | where.exe hdc → 环境变量 HDC_PATH → OHOS_SDK_HOME 下 openharmony/toolchains/hdc.exe → DevEco Studio 默认路径 |
| macOS | which hdc → OHOS_SDK_HOME 下 openharmony/toolchains/hdc → DevEco Studio.app 路径 |
| Linux | which hdc → OHOS_SDK_HOME 下 openharmony/toolchains/hdc → ~/.ohos-sdk 路径 |
定位失败时,设置环境变量 HDC_PATH(Windows)/ OHOS_SDK_HOME(macOS / Linux)后重试。
快速使用
1. 截图(真机,仅手机端,命令跨平台)
hdc shell snapshot_display -f /data/local/tmp/shot.jpeg
hdc file recv /data/local/tmp/shot.jpeg shots/01-home.jpeg
2. 合成三端海报
Windows(PowerShell):
$mk = '<本skill目录>/scripts/make-poster.ps1'
foreach ($dev in 'phone','tablet','pc') {
powershell -File $mk -Shot shots/01-home.jpeg `
-Title '一站式编辑' -Subtitle '选一张图,所有工具随心切换' `
-Device $dev -Out 01-home-$dev.png -CropTop 100 -CropBottom 60
}
macOS / Linux(Python + Pillow):
mk='<本skill目录>/scripts/make-poster.py'
for dev in phone tablet pc; do
python3 "$mk" --shot shots/01-home.jpeg \
--title '一站式编辑' --subtitle '选一张图,所有工具随心切换' \
--device "$dev" --out "01-home-$dev.png" \
--crop-top 100 --crop-bottom 60
done
脚本输出示例:
OK 01-home-phone.png 1080x1920 1.42MB
macOS 上若已安装 PowerShell 7+,也可直接跑
make-poster.ps1,但需自行安装 .NET 中文字体;推荐使用原生make-poster.py。
三端规格表(AppGallery 要求)
| 设备 | 尺寸(最低,固定宽高比) | 数量 | 格式与大小 |
|---|---|---|---|
| 手机 | 1080×1920(9:16) | 3~10 张 | PNG/JPG/JPEG ≤5MB,WEBP ≤200KB |
| 平板 | 1920×1280(3:2) | 3~10 张 | PNG/JPG/JPEG ≤5MB,WEBP ≤200KB |
| PC | 1920×1080(16:9) | 3~10 张 | PNG/JPG/JPEG ≤5MB |
真机截图只截手机;平板与 PC 海报直接复用手机截图合成(横版布局:左文案 + 右手机截图)。
硬性数量约束:每种设备最少 3 张、最多 10 张。页面清单不足 3 个时,需自动补足(如加设置页/更多设置页/核心功能页)。
配置参数
两脚本参数完全对应(命名风格不同:PowerShell 用 -PascalCase,Python 用 --kebab-case):
| 参数 (PowerShell) | 参数 (Python) | 必填 | 默认 | 说明 |
|---|---|---|---|---|
-Shot |
--shot |
是 | — | 真机截图路径 |
-Title |
--title |
是 | — | 主标题(≤8 字) |
-Subtitle |
--subtitle |
否 | '' |
副标题(≤20 字) |
-Device |
--device |
否 | phone |
phone / tablet / pc |
-Out |
--out |
是 | — | 输出文件路径(.png 或 .jpg/.jpeg) |
-CropTop |
--crop-top |
否 | 0 |
截图顶部裁剪像素(去掉状态栏) |
-CropBottom |
--crop-bottom |
否 | 0 |
截图底部裁剪像素 |
-BgTop |
--bg-top |
否 | #EFEDFB |
背景渐变上色 |
-BgBottom |
--bg-bottom |
否 | #FFFFFF |
背景渐变下色 |
-Accent |
--accent |
否 | #7C6FF0 |
强调色(品牌竖条等) |
-Ink |
--ink |
否 | #1A1A26 |
主标题颜色 |
-SubColor |
--sub-color |
否 | #6B7280 |
副标题颜色 |
| — | --font-family |
否 | 自动探测 | 字体名(Python 专属,macOS/Linux 可显式指定) |
修改 -BgTop/-BgBottom/-Accent(或对应的 --bg-top/--bg-bottom/--accent)三色即可匹配应用主题。
避坑
- 真机截图宽高比(约 9:20)≠ 海报比例,必须合成画布,不能直接拉伸截图当海报。
snapshot_display输出分辨率随设备,合成脚本按目标画布等比缩放,无需预缩放。uitest坐标以dumpLayout的bounds为准,勿复用旧会话坐标(页面改版会漂移)。- WEBP 仅为可选上传格式,默认产 PNG 即可;两脚本均不写 WEBP。
- 字体缺失会回退系统默认字体,可能导致中文排版错位 —— macOS 用 PingFang SC,Linux 需装 Noto Sans CJK SC。
License
本仓库采用 Apache License 2.0 授权。
Copyright 2026 openharmony-skills contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
项目介绍
为 HarmonyOS 应用生成应用商店上架海报(介绍截图)。用 hdc/uitest 在真机上构建部署、模拟操作截取各页面截图,结合描述文案合成手机(1080×1920, 9:16)、平板(1920×1280, 3:2)、PC(1920×1080, 16:9)三种规格海报,产物存工程 store-posters/ 目录并加入 .gitignore。当用户提到"生成海报""商店截图""介绍截图""AppGallery 上架图""宣传图""store screenshots"时使用。
https://gitcode.com/openharmony-skills/hmos-store-poster定制我的领域