Prüfen ob Zeichen in Font vorhanden ist

Persönliche Seite #1538409
Lesenswert?

Ich will mir für mein Display einen Font converter schreiben mit dem ich 
auch Unicode Grafik-Fonts erstellen kann.

Beim Konvertieren würde ich aber gerne prüfen ob das Zeichen, welches 
ich konvertieren möchte in der Ausgangsfont überhaupt vorhanden ist (um 
am Ende nicht eine Font zu erstellen die zum größten Teil aus 
Platzhalter-Kästchen besteht...).

Das ganze soll unter Windows laufen (also TrueType Fonts). Ein bischen 
habe ich schon in C# gespielt aber noch keine Möglichkeit gefunden die 
Existenz eines Zeichens zu überprüfen.

Nebenfrage: Kennt jemand vielleicht Unicode implementierungen auf 
Mikrocontrollern wo man mal abschauen kann?
Gast #1538563
Lesenswert?

Hallo,

Zitat aus der TTF-File-Definition:

'cmap' Character to Glyph Index Mapping Table
...
Character codes that do not correspond to any glyph in the font should 
be mapped to glyph index 0. The glyph at this location must be a special 
glyph representing a missing character.

Falls dir das was nützt, müsstest du dir die True Type Definition 
besorgen, ich habe ein None Disclosure unterschrieben.

Gruss Reinhard
Gast #1538705
Lesenswert?

Hallo,

danke für den Link - meine Spec ist Version 1.00, die gibts nicht mal 
mehr "for historical purposes". Damals war Truetype noch ganz neu und 
vertraulich. Aber wie man sieht stimmt das meiste noch.

Gruss Reinhard
(Firma: Q3) #1538814
Lesenswert?

Ginge auch mit Mitteln des (pixelweisen) Bildvergleiches in deiner 
Windows-Anwendung. In einem Canvas oder internen Bildpuffer (z.B. 100 x 
100 Pix) gibst du einmal das Platzhalter-Kästchen aus, zum Anderen das 
zu prüfende Zeichen und checkst dann, ob die Pixelmuster gleich oder 
verschieden sind bzw. ob überhaup Pixel geschwärzt wurden ...

Ist zwar nicht sehr elegant, benötigt dafür keine Kenntnisse der Interna 
einer Font-Datei.

Frank
Gast #1542372
Lesenswert?

@Marius S: erst Mal eine Frage, sag mal wie schreibst du die Zeichen in 
deine Ausgangs-Fontdatei?Hast einen eigenen TTF-Compiler geschrieben? 
Der Aufbau von TTF Dateien ist nicht simple.

Ich habe was ähnliches gemacht, ich musste allerdings eine TTF Datei um 
einige Zeichen reduzieren, sprich aus der datei löschen, dafür habe ich 
das TTX Tool verwendet (macht XML aus eine TTF datei und zurück).Diese 
verkleinte Datei wird dann im Embedded UI verwendet.

Zu deinem Problem:

auf Sourceforge habe ich mal ein Beispiel gefunden, wie man die 
einzelnen Tabellen aus einer TTF Datei ausliest, so wie der Reinhard 
Kern geschrieben hat, ist jedem Unicodewert ein Name des Glyphen 
zugeordnet oder eben 0, wenn kein Glyph vorhanden ist. Diese Zuordnung 
findet in der "CMAP" Tabelle Statt, wobei es dort glaub ich eine für 
Windows und eine für MAC gibt - Apple und Microsoft haben Fonts zusammen 
entwickelt.

Dann sind jedem Glyph die eigentlichen Punkte zugeordnet(steht im Header 
der TTF Datei), durch die Dann der Linienzug verläuft.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren