RenderService SDK v1.0.1
========================

render.min.js 是 PSD 在线渲染引擎的前端 SDK，用于在浏览器中加载 PSD 模板并替换智能对象图层后生成渲染图。

快速开始
--------

1. 引入脚本

    <script src="render.min.js"></script>

2. 初始化

    const rd = new RenderService({
        apiHost: 'https://renderpsd.podorn.com',       // API 地址，本地部署时同域可留空
        width: 1000,       // 画布宽度
        height: 1000       // 画布高度
    });

3. 加载 PSD 数据

    const psdKey = 'YOUR_PSD_KEY';
    //支持多个 psdKey
    await rd.initKeys([psdKey]);

4. 渲染到容器
    // HTML 中需要有一个容器元素，id 为 'container'
    const container = document.getElementById('container');
    await rd.renderAll(container);

5. 替换智能对象并更新
    // 智能对象图层名必须与 PSD 中定义的智能对象图层名一致，建议使用英文与数字组合
    const list = {
        'SO_LAYER_NAME': 'https://example.com/image.png'
    };
    await rd.update(list, (renderedPsdKey) => {
        console.log('渲染完成', renderedPsdKey);
    });

6. 导出指定 psdKey 的图片

    // dataType: 'blob' | 'base64'
    // format:   'png' | 'webp' | 'jpeg'
    // quality:  0~1 (png 格式 quality 参数无效)
    const data = await rd.toDataURLByKey(psdKey, 'png', 1, 'blob');
    const url = URL.createObjectURL(data);
    // ... 下载或展示

7. 批量导出所有 psdKey 的图片

    rd.toDataURLAll('png', 1, function(data, psdKey) {
        console.log('单个导出完成', psdKey);
    }, 'blob').then((dataItems) => {
        for (const item of dataItems) {
            // item.dataUrl  - Blob 或 Base64 字符串
            // item.psdKey   - 对应的 psdKey
            // item.format   - 'blob' 或 'base64'
        }
    });

API 参考
--------
rd = new RenderService(options);
    初始化渲染引擎。options: { apiHost, width, height }

rd.initKeys(psdKeys: string[])
    根据 psdKey 数组加载 PSD 数据。

rd.renderAll(container: HTMLElement)
    将已加载的 PSD 渲染到指定 DOM 容器。

rd.update(soMap: object, callback?: function)
    替换智能对象图层并重新渲染。soMap 键为智能对象图层名，值为图片 URL。

rd.toDataURLByKey(psdKey, format, quality, dataType)
    导出指定 psdKey 的渲染结果。返回 Promise。

rd.toDataURLAll(format, quality, onEach, dataType)
    批量导出所有已渲染 psdKey 的结果。返回 Promise<Array>。

更多信息请访问渲染示例页面。


PSD文件要求
--------
1.渲染模式blendMode支持以下8种：
Normal正常
Darken 变暗
Multiply正片叠底
Color Burn 颜色加深
Screen 滤色
Color Dodge 颜色减淡
Lighten 浅色
Overlay 叠加
LINEAR_BURN 线性加深
LINEAR_DODGE 线性减淡
HARD_LIGHT 强光
SOFT_LIGHT 柔光
VIVID_LIGHT 亮光
LINEAR_LIGHT 线性光
PIN_LIGHT 点光
HARD_MIX 实色混合
DIFFERENCE 差值
EXCLUSION 排除
SUBTRACT 减去
DIVIDE 划分
HUE 色相
SATURATION 饱和度
COLOR 颜色
LUMINOSITY 明度
3.支持智能对象图层变形（扭曲、拆分、旋转等）
4.支持矢量蒙版或图形蒙版
5.不支持滤镜
6.不支持矢量图层，支持像素图层