Update README: effects, deps, known limits, calibration
This commit is contained in:
1 parent
b38e7cca35
commit
d3234d54b5
1 file changed
+26
-6
@@ -17,6 +17,11 @@
|
|||||||
| `--type-layer` | 文字层转成**可编辑的 TypeLayer**(PS 里可改字/字号/颜色) |
|
| `--type-layer` | 文字层转成**可编辑的 TypeLayer**(PS 里可改字/字号/颜色) |
|
||||||
| 图层组映射 | ppl 的 `[group]` + 图层 `groupId` → PSD 图层组(含嵌套),无需参数 |
|
| 图层组映射 | ppl 的 `[group]` + 图层 `groupId` → PSD 图层组(含嵌套),无需参数 |
|
||||||
| 加粗映射 | `textFontStyle=1`(伪加粗)→ TypeLayer 的 FauxBold / 栅格化 stroke 加粗 |
|
| 加粗映射 | `textFontStyle=1`(伪加粗)→ TypeLayer 的 FauxBold / 栅格化 stroke 加粗 |
|
||||||
|
| 阴影渲染 | 形状/文字层的阴影(distance / blur / angle / opacity)栅格化还原 |
|
||||||
|
| 渐变 | 形状填充渐变、形状渐变描边、文字渐变填充(栅格化) |
|
||||||
|
| 透明度映射 | ppl 的 `alpha`(0-255) → PSD 图层不透明度 |
|
||||||
|
| 矢量放大 | `--scale` 将整个项目等比放大(画布/图层/文字/阴影 ×N) |
|
||||||
|
| 内存安全 | 渲染+编码流式流水线,单层释放;超大画布不爆 RAM |
|
||||||
| 进度条 | tqdm 显示渲染/编码进度 |
|
| 进度条 | tqdm 显示渲染/编码进度 |
|
||||||
|
|
||||||
### psd2ppl.py — PSD → PPL
|
### psd2ppl.py — PSD → PPL
|
||||||
@@ -30,10 +35,15 @@
|
|||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install pillow numpy tqdm psd-tools fonttools
|
# 必需
|
||||||
|
pip install pillow tqdm
|
||||||
|
# 可选:TypeLayer 可编辑文字(--type-layer 需要)
|
||||||
|
pip install psd-tools fonttools
|
||||||
|
# 可选:通道编码加速(缺失时自动降级为 PIL 实现)
|
||||||
|
pip install numpy
|
||||||
```
|
```
|
||||||
|
|
||||||
> 字体 PostScript 名提取(TypeLayer 用)需要 fonttools,其他为必需依赖。
|
> `psd-tools` / `fonttools` 仅 TypeLayer 模式需要;`numpy` 缺失时自动降级。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -55,10 +65,10 @@ python3 psd2ppl.py input.psd -o out.ppl
|
|||||||
|
|
||||||
参数:
|
参数:
|
||||||
- `-o` / `--output`:输出路径(默认与输入同名)
|
- `-o` / `--output`:输出路径(默认与输入同名)
|
||||||
- `--preview`:同时输出合成预览 PNG(`--scale` 非 1 时输出全分辨率预览)
|
- `--preview`:同时输出合成预览 PNG(1x 时降采样到 2000px 宽;`--scale` 非 1 时输出全分辨率)
|
||||||
- `-j` / `--workers`:并行编码线程数(默认 4)
|
- `-j` / `--workers`:通道编码并行进程数(默认 `CPU 核数/2`,`--scale ≥2` 时自动降为 1 防爆内存)
|
||||||
- `--type-layer`:文字转 TypeLayer
|
- `--type-layer`:文字转 TypeLayer
|
||||||
- `--scale`:整个矢量项目等比放大倍数(默认 1.0;≥2 时自动降为单进程编码防爆内存)
|
- `--scale`:整个矢量项目等比放大倍数(默认 1.0)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -69,7 +79,9 @@ ppl2psd/
|
|||||||
├── ppl2psd.py # PPL → PSD
|
├── ppl2psd.py # PPL → PSD
|
||||||
├── psd2ppl.py # PSD → PPL
|
├── psd2ppl.py # PSD → PPL
|
||||||
├── tools_tysh_template.bin # TypeLayer 引擎数据模板(取自 PS 生成文件)
|
├── tools_tysh_template.bin # TypeLayer 引擎数据模板(取自 PS 生成文件)
|
||||||
└── samples/ # 测试素材(ppl/psd/预览图)
|
├── LICENSE # MIT
|
||||||
|
├── .gitignore # 忽略素材/产物(samples/、*.ppl、*.psd、*.png 等)
|
||||||
|
└── samples/ # 本地测试素材(不入库)
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -79,7 +91,12 @@ ppl2psd/
|
|||||||
- **栅格化模式**(默认)下文字/渐变/圆角都是像素,PS 里不可编辑(可移动/缩放/调透明度)
|
- **栅格化模式**(默认)下文字/渐变/圆角都是像素,PS 里不可编辑(可移动/缩放/调透明度)
|
||||||
- **TypeLayer 模式**:PS 里文字可编辑,但需要电脑安装对应字体(`/storage/emulated/0/Fonts/` 下的
|
- **TypeLayer 模式**:PS 里文字可编辑,但需要电脑安装对应字体(`/storage/emulated/0/Fonts/` 下的
|
||||||
汉仪花冠、思源宋体/黑体、行楷等),否则 PS 会用替换字体显示
|
汉仪花冠、思源宋体/黑体、行楷等),否则 PS 会用替换字体显示
|
||||||
|
- PS 打开仍提示"文本图层需要转换";转换后文字可编辑,但部分效果会丢失/变化:
|
||||||
|
最后字被吞、文本框跑位、渐变变纯色、阴影/描边丢失(栅格化模式可完整保留这些效果)
|
||||||
- 形状渐变/圆角在两种模式下均栅格化(不可编辑渐变参数)
|
- 形状渐变/圆角在两种模式下均栅格化(不可编辑渐变参数)
|
||||||
|
- 文字层阴影在栅格化模式还原;TypeLayer 模式的阴影/描边需在 PS 里手动重加
|
||||||
|
- `--scale 2` 全分辨率输出可达 2 万像素级宽,内存占用高(已做流式编码优化,
|
||||||
|
建议确保设备可用内存 ≥ 8GB)
|
||||||
- PSD → PPL 反向转换后,原 ppl 的文字/形状矢量信息无法恢复(已栅格化)
|
- PSD → PPL 反向转换后,原 ppl 的文字/形状矢量信息无法恢复(已栅格化)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -92,5 +109,8 @@ ppl 的文字渲染与 PS 有系统性差异,本项目针对 App 导出图做
|
|||||||
- **字符宽度**:PIL 的 CFF 字体 advance 与 App 不同,按全角/半角/标点/空格分系数修正
|
- **字符宽度**:PIL 的 CFF 字体 advance 与 App 不同,按全角/半角/标点/空格分系数修正
|
||||||
- **对齐**:居中基准按字体族区分(advance 居中 vs 内容居中)
|
- **对齐**:居中基准按字体族区分(advance 居中 vs 内容居中)
|
||||||
- **blending ranges**:PS 要求图层合成范围为全范围 (0..65535),否则图层不参与合成(画布空白)
|
- **blending ranges**:PS 要求图层合成范围为全范围 (0..65535),否则图层不参与合成(画布空白)
|
||||||
|
- **阴影**:App 的 `shadowDistance/shadowBlur/shadowAngle` 换算为 PIL 高斯模糊 + 偏移,
|
||||||
|
`shadowOpacity` 叠加到阴影 alpha
|
||||||
|
- **透明度**:ppl `alpha` 0-255 直接映射 PSD `opacity` 0-255(PS 显示 0-100%),渲染时不再重复应用
|
||||||
|
|
||||||
修改 `ppl2psd.py` 顶部的 `FONT_PROFILES` 可调整各字体渲染参数。
|
修改 `ppl2psd.py` 顶部的 `FONT_PROFILES` 可调整各字体渲染参数。
|
||||||
Reference in new issue
Block a user