Skip to content

Commit

Permalink
Ran fix_colr_font_revision.py
Browse files Browse the repository at this point in the history
  • Loading branch information
rsheeter committed Nov 17, 2022
1 parent e8f3ab2 commit db0e393
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 1 deletion.
11 changes: 10 additions & 1 deletion about_fonts.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
import sys


NAME_ID_VERSION = 5


def name(font, name_id):
return ",".join(n.toUnicode() for n in font["name"].names if n.isUnicode() and n.nameID == name_id)


def main():
font_files = sorted(p for p in (Path(__file__).parent / "fonts").iterdir() if p.suffix == ".ttf")
max_name_len = max(len(p.name) for p in font_files)
Expand All @@ -19,7 +26,9 @@ def main():
font_type.append("COLR")
if "meta" in font and "Emji" in font["meta"].data:
font_type.append("EmojiCompat")
font_type = ",".join(font_type)
font_type.append(f"fontRevision:{font['head'].fontRevision:.3f}")
font_type.append(name(font, NAME_ID_VERSION))
font_type = ", ".join(font_type)

print(f"{font_file.name:{max_name_len + 1}} {font_type}")

Expand Down
36 changes: 36 additions & 0 deletions fix_colr_font_revision.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""Set COLRv1 fontRevision from CBDT.
Used for bugfix, should fix to set properly on build instead.
"""

from fontTools import ttLib
from pathlib import Path
import sys


NAME_ID_VERSION = 5


def name(font, name_id):
return ",".join(n.toUnicode() for n in font["name"].names if n.isUnicode() and n.nameID == name_id)


def main():
colr_font_files = sorted(p for p in (Path(__file__).parent / "fonts").iterdir() if p.name.startswith("Noto-COLRv1"))

for colr_font_file in colr_font_files:
cbdt_font_file = colr_font_file.with_stem(colr_font_file.stem.replace("Noto-COLRv1", "NotoColorEmoji"))

colr_font = ttLib.TTFont(colr_font_file)
cbdt_font = ttLib.TTFont(cbdt_font_file)

assert "CBDT" in cbdt_font
assert "COLR" in colr_font

colr_font["head"].fontRevision = cbdt_font["head"].fontRevision

colr_font.save(colr_font_file)


if __name__ == '__main__':
main()
Binary file modified fonts/Noto-COLRv1-emojicompat.ttf
Binary file not shown.
Binary file modified fonts/Noto-COLRv1-noflags.ttf
Binary file not shown.
Binary file modified fonts/Noto-COLRv1.ttf
Binary file not shown.

0 comments on commit db0e393

Please sign in to comment.