2.2.42-beta.5 • Published 4 years ago

@gaoding/psd-to-templet v2.2.42-beta.5

Weekly downloads
69
License
ISC
Repository
github
Last release
4 years ago

psd-to-templet

transform psd into templet

Installation

use npm

npm install psd-to-templet

Usage

import psdToTemplet from 'psd-to-templet';

psdToTemplet(file, options)
.then(res => {})
.catch(err => {})
feature detect

// 自定义特性检测
var customFeatureDetection = {
    name: 'xxx', // 特性检测名
    scope: 'layer', // 特性检测对象,layer | group | canvas(整个psd)
    /*
     * @param {object} layer - 原图层信息
     * @param {object} elem - 解析后的图层信息
     * @return {boolean|promise} - 返回布尔值true/false,或返回promise
     */
    detection(layer, elem) {}
};

var featureDetections = psdToTemplet.defaultFeatureDetections;
featureDetections.push(customFeatureDetection);

psdToTemplet(file, {
    featureDetections: featureDetections,
    onDetectFail(featureDetect, error) {
        // deal with error
    }
});

// defaultFeatureDetections
psdToTemplet.defaultFeatureDetections = [{
    name: 'effect',
    scope: 'layer',
    detection(layer, elem) {
        var effectsData = layer.objectEffects
            ? layer.objectEffects().data
            : null;

        if(!effectsData) {
            return true;
        }
        Object.keys(effectsData).forEach(function(key) {
            var parser = effectsParsers[key];

            if(!parser) {
                return false;
            }
        });

        return true;
    }
}, {
    name: 'blendMode',
    scope: 'layer',
    detection(layer, elem) {
        const blendKey = layer.blendMode.blendKey;
        const parser = blendModeParsers[blendKey];

        if(blendKey !== 'norm' && !parser) {
            return false;
        }
        return true;
    }
}];

Options

parseWidget

是否解析多样式部件 详细文档

fontMetricsMap

模板中所使用到的字体信息,用于字体位置偏移的调整,包括字体的EmSize,Ascent,Descent,默认维护了一份常用字体。

  • type: Object
const fontMetricsMap = [{
    name: '',
    meta_data: {
        emSize: 1000,
        ascent: 1015,
        descent: -206
    }
}]

parseFolderLayout

是否将默认的一级文件解析成 layout

  • type: Boolean
  • default: false

parseGlobalBackground 是否解析长页面全局背景

  • type: Boolean
  • default: false

useBackgroundRect

是否使用背景元素作为 layout 大小

  • type: Boolean
  • default: false

ignoreMetaInfo

是否忽略元信息,仅返回图层信息,若为false,则返回object格式

  • type: Boolean
  • default: true

defaultTextType

Specifies the scale type of text

  • type: String
  • default: block
  • options: headcontentblock

parseSVG:

while false, parse svg as png

  • type: Boolean
  • default: true

groupMode:

Specifies the mode of parsing groups,while tag, remember to name group as group*

  • type: String
  • default: flat
  • options: flatmergetag

canvasFeatureDetections:

canvas 特性检测

  • type: Array

groupFeatureDetections:

组元素特性检测

  • type: Array

layerFeatureDetections:

图层元素特性检测 *type: Array

imageQuality:

  • type: Number
  • default: 60

imageMaxWidth:

  • type: Number

imageMaxHeight:

  • type: Number

onProgress:

  • type: Function
  • usage:
onProgress(data) {
    var message = data.message;
    var progress = data.progress;
}

Output

[{
    backgroundColor: "#FFFFFF",
    elements: [{
        type: 'group',
        elements: [{
            height: 321,
            left: 0,
            opacity: 1,
            top: 0,
            type: "image",
            url: "data:image/jpeg;base64",
            width: 1242
        }],
        height: 321,
        left: 0,
        top: 1887,
        width: 1242
    }, {
        color: '#000000',
        content: '哈哈哈哈哈',
        fontFamily: 'FZLTTHK--GBK1--0',
        fontSize: 57,
        fontStyle: 'normal',
        fontWeight: 400,
        height: 80.646,
        left: 320,
        letterSpacing: 0,
        lineHeight: 1.2,
        opacity: 1,
        resize: 7,
        textAlign: 'center',
        textDecoration: 'none',
        top: 56.019,
        transform: {a: 1, b: 0, c: -0, d: 1, tx: 0, ty: 0},
        type: 'text',
        width: 602
    }],
    height: 2208,
    title: null,
    width: 1242,
}]
2.2.42-beta.5

4 years ago

2.2.41

4 years ago

2.2.40

4 years ago

2.2.39

5 years ago

2.2.38

5 years ago

2.2.37-beta.1

5 years ago

2.2.37

5 years ago

2.2.36

5 years ago

2.2.35

5 years ago

2.2.34

5 years ago

2.2.32

5 years ago

2.2.31

5 years ago

2.2.30

5 years ago

2.2.29

5 years ago

2.2.28

5 years ago

2.2.25

5 years ago

2.2.24

5 years ago

2.2.23

5 years ago

2.2.22

5 years ago

2.2.21

5 years ago

2.2.20

5 years ago

2.2.19

5 years ago

2.2.18

5 years ago

2.2.17

5 years ago

2.2.16

5 years ago

2.2.15

5 years ago

2.2.14

5 years ago

2.2.13

5 years ago

2.2.12

5 years ago

2.2.11

5 years ago

2.2.10

5 years ago

2.2.9

5 years ago

2.2.8

5 years ago

2.2.7

5 years ago

2.2.6

5 years ago

2.2.5

5 years ago

2.2.4

5 years ago

2.2.3

5 years ago

2.2.2

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.0

5 years ago

2.0.5

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0-beta.1

5 years ago

1.1.27-beta.5

5 years ago

1.1.27-beta.4

5 years ago

1.1.27-beta.3

5 years ago

1.1.27-beta.2

5 years ago

1.1.27-beta.1

5 years ago

1.1.26-beta.9

5 years ago

1.1.26-beta.8

5 years ago

1.1.26-beta.7

5 years ago

1.1.26-beta.6

6 years ago

1.1.26-beta.5

6 years ago

1.1.26-beta.4

6 years ago

1.1.26-beta.3

6 years ago

1.1.26-beta.2

6 years ago

1.1.26-beta.1

6 years ago

1.1.26-bate.0

6 years ago

1.1.25

6 years ago

1.1.24

6 years ago

1.1.23

6 years ago

1.1.22

6 years ago

1.1.21

6 years ago

1.1.20

6 years ago

1.1.19

6 years ago

1.1.18

6 years ago

1.1.17

6 years ago