Kritzelei wird Schrift

Weiterentwicklung von Hand2Font.

Von handgekritzelten Zeichen zum weiterbearbeitbaren Font. Drei Blatt mit je 49 Kästchen stehen bereit für die jeweiligen Zeichen. Sind die Kästchen ausgefüllt, können die Bögen per Foto oder Scan umgewandelt werden.

Für die Weiterverarbeitung gibt es ein Skript zum Entzerren und Zuschneiden der Glyphen-Vorlage. Hernach werden die Kästchen per opencv erkannt, der Inhalt der Boxen dann ausgeschnitten und die vorliegenden Einzelbilder der Kästcheninhalte in *.ppm-Dateien umgewandelt um diese dann per potrace zu vektorisieren. Die erstellten *.svg-Dateien werden im nächsten Schritt an vorgesehenen Positionen im Font platziert und eine *.sfd-Datei erstellt.

Die automatische Umwandlung der Zeichen soll einige Schritte bei der Erstellung einer eigenen Schrift mit Fontforge beschleunigen. Es wartet auf jeden Interessierten aber noch genügend (Fein-)Arbeit bei der Verbesserung der automatisch erstellten *.sfd-Datei.

Kritzelei-Zeichenvorlage

Zeichenvorlage-A Zeichenvorlage-B Zeichenvorlage-C

Kritzelei-Zeichenvorlage.pdf

magic

Bei der Erstellung des Fonts werden bzgl. der eigenen Zeichen noch weitere Einstellungen und Umwandlungen vorgenommen:

Nutzung

In den Ordner Kritzelei-Bilder-Original kommen die Fotos/Scans der ausgefüllten Kritzelei-Zeichenvorlage.

Inhalt dann dort:

Mittels python3 Kritzelei-Bilder-Vorbereitung.py -s Kritzelei-Bilder-Original wird dann der Ordner nach jpg-Dateien inspiziert und die drei Dateien im Ordner Kritzelei-Bilder-Vorbereitung beschnitten und entzerrt abgelegt.

Möglicher Inhalt dort:

Auch die einzelne Umwandlung per python3 Kritzelei-Bilder-Vorbereitung.py -f A.jpg ist möglich, der Dateiname ist dann auf den Ordner Kritzelei-Bilder-Original bezogen.

Wollen wir nachsehen, ob die Glyphen in den jeweiligen Kästen ordentlich und in ordentlicher Reihenfolge erkannt werden – das ist ja durchaus sehr wichtig für den nächsten Schritt – so können wir dies mit python3 Kritzelei-Bilder-Fehlersuche.py -s Kritzelei-Bilder-Vorbereitung tun.

Hier werden uns dann in einem kleinen Fenster die Originaldatei und das Erkannte angezeigt. Mit ESC können wir die kleinen Darstellungen jeweils Bestätigen und so Durchschalten.

Passt dies, geht es weiter. Grundlegend hier zwei Aufrufe, weitere Einstellmöglichkeiten kann man vorerst der Hilfe innerhalb des Skripts entnehmen, oder bei Durchsicht des Skripts selbst sehen und ändern:

Hier also die vorbereiteten Bilder aus Kritzelei-Bilder-Vorbereitung holen (A,B,C) und in den Ordner Output/Kritzelei-01 mit Schriftnamen Kritzelei-01 hinein umwandeln … die Glyphenbilder, deren Umwandlung und eine weiterverwendbare .sfd erzeugen. Schwellwerte für Strichdicke, Unreinheiten usw. könnten ebenfalls noch verwendet werden. --rmppm, --rmsvg oder --rmjpg entfernt nämliche Zwischenschrittdateien.

python3 Kritzelei-wird-Schrift-Scan2SVG.py --scans Kritzelei-Bilder-Vorbereitung/ -o Output/Kritzelei-01 -n Kritzelei-01 --rmppm

Ein bisschen mit den Optionen wird man schon spielen müssen, hier eine Variante, welche gerade bei bestimmten Stiftverwendungen und Stiftfarbenverwendungen erfolgreich ist. Aber auch hier nochmals der Hinweis, dass eine vorherige Bearbeitung hin zu kontrastreichem schwarz/weiß im Bildbearbeitungsprogramm hilfreich ist.

python3 Kritzelei-wird-Schrift-Scan2SVG.py --scans Kritzelei-Bilder-Vorbereitung/ -o Output/Kritzelei-02 -n Kritzelei-02 --rmppm --buntstift

-t 160: Schwellwert hinsichtlich der Umwandlung (Kastenerkennung). Zwischen 0 und 255, wobei ich für den Standard ca. um die 160 vorschlagen würde.

-o Ordner: Ordnername und Ziel, in welchem die Dateien abgelegt werden.

-n KritzeleiFont: Wie soll der Font später heißen?

--rmppm: *.ppm-Dateien im Erstellungsordner entfernen.

--rmjpg: *.jpg-Dateien im Erstellungsordner entfernen.

--rmsvg: *.svg-Dateien im Erstellungsordner entfernen.

--buntstift: bei Buntstift, Farbe, uneinheitlicher Deckkraft, … (resultiert in Verwendung von --blacklevel 0.96)

--ptdefault: statt --buntstift. Führt zu genauerer Umsetzung.

Ergebnis in FontForge

Fontforge-Ansicht der generierten Glyphen

Download

Hierzu am besten auf der github-Seite zu Kritzelei wird Schrift die Projektdaten herunterladen:

Projektdateien für Kritzelei wird Schrift herunterladen

notwendige Pakete

unter Linux

Viel Vergnügen & happy fonting,
Christoph Pfeiffer