Ich möchte mit Python und fontforge eine .ttf Font erstellen, welche auch Emojis enthält…
Meine Glyphen sind .svg Dateien welche eine Auflösung von 512x512 Pixeln haben.
Ich habe folgendes Ausprobiert:
Code: Alles auswählen
import fontforge
blank = fontforge.font()
blank.save("blank.sfd")
font = fontforge.open("blank.sfd")
glyph = font.createMappedChar("\U0000263A")
glyph.importOutlines("263A.svg")
font.generate("font.ttf")
Code: Alles auswählen
Traceback (most recent call last):
File "/home/adrian/dev/font/glyphs/test.py", line 5, in <module>
glyph = font.createMappedChar("\U0000263A")
ValueError: Glyph name, ☺️, not in current encoding
Ich habe versucht " ISO8859-1" mit "UTF-8" oder "unicode" zu ersetzen, bekomme dann aber den folgenden Fehler:
Code: Alles auswählen
Internal Error: SFD file specifies too few slots for its encoding.
Ich habe erstmal probiert das Emoji für den Buchstaben "A" zu verwenden.
Die Font wird auch erstellt und es Funktioniert…
Allerdings ist es nur ein schwarzer Kreis, und Augen, Mund,… sind nicht zu erkennen, weil sie ebenfalls schwarz sind.
In der blank.sfd Datei steht etwas von Layern:
Code: Alles auswählen
Layer: 0 0 "Back" 1
Layer: 1 0 "Fore" 0
Das Programm, das ich verwende, um die Glyphen zu erstellen heißt übrigens Inkscape.
Wie kann ich diese beiden Probleme lösen?