-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackup.ts
103 lines (83 loc) · 2.66 KB
/
backup.ts
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
91
92
93
94
95
96
97
98
99
100
101
102
103
// figma.showUI(__html__);
// async function buildPixels(paint, width, height, xPos, yPos, name) {
// if (paint.type === 'IMAGE') {
// const image = figma.getImageByHash(paint.imageHash)
// const bytes = await image.getBytesAsync()
// figma.showUI(__html__, { visible: false })
// figma.ui.postMessage({ bytes, width, height })
// const imageData: any = await new Promise((resolve, reject) => {
// figma.ui.onmessage = value => resolve(value)
// })
// const perChunk = 4;
// const inputArray = Object.entries(imageData.data)
// const pixels = inputArray.reduce((resultArray, item, index) => {
// const chunkIndex = Math.floor(index/perChunk)
// if(!resultArray[chunkIndex]) {
// resultArray[chunkIndex] = []
// }
// resultArray[chunkIndex].push(item)
// return resultArray
// }, [])
// // Setup the nodes
// const nodes: SceneNode[] = [];
// // Create a new Frame
// const newFrame = figma.createFrame();
// // Resize it to fit target dims
// newFrame.x = xPos + width;
// newFrame.y = yPos;
// newFrame.name = name;
// newFrame.resize(width, height);
// figma.currentPage.appendChild(newFrame);
// nodes.push(newFrame);
// let xStep = 0;
// let x = 1;
// let y = 1;
// for (let i = 0; i < pixels.length; i++) {
// if (i / (width * y) === 1) {
// y = y + 1;
// xStep = xStep + 1;
// }
// x = i - (width * xStep)
// const rect = figma.createRectangle();
// rect.resize(1,1);
// rect.x = x;
// rect.y = y - 1;
// rect.fills = [{
// type: 'SOLID',
// color: {
// r: pixels[i][0][1] / 255,
// g: pixels[i][1][1] / 255,
// b: pixels[i][2][1] / 255
// },
// opacity: pixels[i][3][1] / 255
// }];
// newFrame.appendChild(rect)
// }
// figma.currentPage.selection = nodes;
// //figma.viewport.scrollAndZoomIntoView(nodes);
// }
// return paint
// }
// async function findImage(node) {
// console.log(node)
// switch (node.type) {
// case 'RECTANGLE':
// case 'ELLIPSE':
// case 'VECTOR':
// case 'TEXT': {
// const newFills = []
// for (const paint of node.fills) {
// newFills.push(await buildPixels(paint, node.width, node.height, node.x, node.y, node.name))
// }
// node.fills = newFills
// break
// }
// default: {
// }
// }
// }
// figma.ui.onmessage = (msg) => {
// if (msg.type === "chunkify") {
// Promise.all(figma.currentPage.selection.map(selected => findImage(selected))).then(() => figma.closePlugin())
// }
// };