File: Componentize.py

package info (click to toggle)
fonts-homecomputer 1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 34,848 kB
  • sloc: python: 150; makefile: 22
file content (40 lines) | stat: -rw-r--r-- 1,043 bytes parent folder | download | duplicates (2)
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
def replace_in_layer(layer, components):
    # print(layer.parent.name)
    new = []
    delete_paths = []
    for i, path in enumerate(layer.paths):
        b = path.bounds
        # print(i, path, b)
        for c in components:
            if c.bounds.size == b.size:
                delete_paths.append(i)
                new.append((
                    c.parent.name,
                    (
                        b.origin.x - c.bounds.origin.x,
                        b.origin.y - c.bounds.origin.y
                    )
                ))
    delete_paths.sort(reverse=True)
    for i in delete_paths:
        del layer.paths[i]
    for cn, pos in new:
        layer.components.append(GSComponent(cn, pos))


components = [
    Font.glyphs[name].layers[Font.selectedFontMaster.id]
    for name in [
        "pixel.1",
        "pixel.2",
        "pixel.3",
        "pixel.4",
        "pixel.5",
        "pixel.6",
        "pixel.7",
        "pixel.8",
    ]
]

for layer in Font.selectedLayers:
    replace_in_layer(layer, components)