-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
90 lines (77 loc) · 2.65 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// 请不要使用仿黑体,只允许使用 Bold或者Regular
// 字体与css中名字不一样 是否建一个map
// 不需要的图层,请务必隐藏
// psd的宽度
// 链接的约定
// 奇怪的逻辑,第一个字符一定被分割
// 偶尔奇怪的bug,颜色没了,字体没了,无法重现!!!!!
// 不能敲很多空格,会合并为一个
// 接上,要将字与字之间分开,用字距
// 行高与css是一致的
// 删除线与下划线不用共用
var fs = require('fs')
var PSD = require('psd');
var iconv = require('iconv-lite')
var psd = PSD.fromFile('./test.psd');
var parseLayers = require('./lib/parseLayers');
psd.parse();
// psd.image.toPng()
var tree = psd.tree();
var root = {
'width': tree.coords.right + 'px',
'height': tree.coords.bottom + 'px'
};
var layers = tree.descendants();
var y =tree.psd.resources.get();
var t=parseLayers(tree)
// for (var i in t){
// if (t[i].type==='img'){
// t[i].image.saveAsPng('./image/'+t[i].name+'.png')
// }
// }
// t[1].image.saveAsPng('./text.png');
console.log(t);
console.log('-------------------')
// console.log(tree.psd.resources.resources['1026'].linkArray)
// console.log(tree.children())
//test start
// var PED = require('./lib/parseEngineData');
// var engineData = layers[0].get('textElements').textData.EngineData;
// var d = PED(engineData);
// fs.writeFile('temp', engineData)
// fs.writeFile('format', String.fromCharCode.apply(null, engineData))
// fs.writeFile('format.json', JSON.stringify(d));
//test end
// var undocu = layers[1].get('metadata').data.undocument;
// var out = undocu.map(function(i){
// return String.fromCharCode(i);
// }).join('');
// console.log(out)
// for (var l in layers){
// console.log(layers[0].get('metadata'))
// console.log(layers[l].get('name'))
// }
//pngtest
// for (var i in layers){
// if (layers[i].get('textElements') || layers[i].get('sectionDivider') || !layers[i].visible())
// //去掉文件夹层与文字图层
// continue;
// layers[i].get('image').saveAsPng('./image/'+i+'.png')
// console.log(layers[i].get('image').hasMask)
// }
//pngtest end
// var img = layers[0].get('image').toPng();
// console.log(img)
// fs.writeFile('temp', JSON.stringify(img));
// console.log(layers[0].get('image').loaded)
// console.log(layers[0].get('image').compression)
// root.textLayers = getTextLayers(layers);
// var view = fs.readFileSync('./view/struct-inline.ejs', 'utf8');
// var res = ejs.render(view, {
// 'root':root
// }).replace(/\r/g,'<br>');
//存进去用gbk就行
// var resBf = iconv.encode(res, 'gbk');
// fs.writeFile('test.html', resBf)
// console.log(view)
console.log('done')