(paths, isEmu, anchor, real_anchor, zoom)
| 22 | } |
| 23 | |
| 24 | function getPaths(paths, isEmu, anchor, real_anchor, zoom) { |
| 25 | let resultPaths = [] |
| 26 | for (let i = 0; i < paths.length; i++) { |
| 27 | let path = paths[i] |
| 28 | // console.log('path: ', path) |
| 29 | let scaleX = 1, scaleY = 1 |
| 30 | if (path.w > 0 && path.h > 0) { |
| 31 | if (path.w < 2000 && path.h < 2000) { |
| 32 | isEmu = false |
| 33 | } |
| 34 | let w = value2px(path.w, isEmu) |
| 35 | let h = value2px(path.h, isEmu) |
| 36 | scaleX = anchor[2] / w |
| 37 | scaleY = anchor[3] / h |
| 38 | } else if (zoom) { |
| 39 | scaleX = zoom |
| 40 | scaleY = zoom |
| 41 | } |
| 42 | let newPaths = [] |
| 43 | let split = path.path.replace(/\s+/g, ' ').trim().split(' ') |
| 44 | for (let j = 0; j < split.length; j++) { |
| 45 | switch (split[j]) { |
| 46 | case 'M': |
| 47 | case 'L': |
| 48 | newPaths.push(split[j]) |
| 49 | newPaths.push(value2px(split[++j], isEmu)) |
| 50 | newPaths.push(value2px(split[++j], isEmu)) |
| 51 | break |
| 52 | case 'Q': |
| 53 | newPaths.push('Q') |
| 54 | newPaths.push(value2px(split[++j], isEmu)) |
| 55 | newPaths.push(value2px(split[++j], isEmu)) |
| 56 | newPaths.push(value2px(split[++j], isEmu)) |
| 57 | newPaths.push(value2px(split[++j], isEmu)) |
| 58 | break |
| 59 | case 'C': |
| 60 | newPaths.push('C') |
| 61 | newPaths.push(value2px(split[++j], isEmu)) |
| 62 | newPaths.push(value2px(split[++j], isEmu)) |
| 63 | newPaths.push(value2px(split[++j], isEmu)) |
| 64 | newPaths.push(value2px(split[++j], isEmu)) |
| 65 | newPaths.push(value2px(split[++j], isEmu)) |
| 66 | newPaths.push(value2px(split[++j], isEmu)) |
| 67 | break |
| 68 | case 'Z': |
| 69 | newPaths.push('Z') |
| 70 | break |
| 71 | } |
| 72 | } |
| 73 | resultPaths.push({ |
| 74 | scaleX, |
| 75 | scaleY, |
| 76 | x: real_anchor[0], |
| 77 | y: real_anchor[1], |
| 78 | path: newPaths.join(' '), |
| 79 | stroked: path.stroked, |
| 80 | filled: path.filled |
| 81 | }) |
no test coverage detected