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?
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
Scheint die einzige Möglichkeit zu sein... http://www.pinvoke.net/default.aspx/gdi32.getfontunicoderanges
Seit wann ist ein NDA für die TrueType-Spezifikation erforderlich? http://www.microsoft.com/typography/SpecificationsOverview.mspx
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
Hi nimm doch die Freetype zum rendern deiner Fonts. Da fällt die Info einfach so ab (Mapping des Codes auf glyph index 0) Gibts da eigentlich nichts fertiges? Ist ja schließlich nicht weiter schwierig sich mit Freetype was zusammenzustricken. Matthias
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
@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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.