Hey Leute.
Ein glyph aus nem ttf Font besitzt ja folgende Infos:
Ich würde gerne mit der awt Font Klasse einzelne chars in ein Bild umwandeln können,
um nachher mit opengl einfach die bilder ananeinander zuhängen, um eben text zu rendern.
Das Problem ist, das die FontMetrics aber nicht ausreichend Infos liefern (oder ich bin einfach zu müde
die zu finden) um die Bilder richtig zu erzeugen, beziehungsweise die zeichen nachher in zB richtigen abständen aneinanderzuhängen…
aber irgendwie muss es doch gehen, swing kann es ja auch…
wie genau muss das werden?
beliebige Schriftarten oder nur eine?
ich habe mir die Breiten mal selber ausgerechnet, weiß gar nicht ob in der aktuellen Firma oder einer alten, könnte Montag nachschauen,
aber ist auch schnell gemacht:
je Buchstabe schreibe 30 oder 50 oder so direkt hintereinander (bei mir war es per drawString in einem ordentlichen Swing-Fenster),
dann messe die Breite, male darunter Linien mit Breite x
viele Buchstaben hatten dabei dieselbe Breite, nicht so viel zu tun wie es vielleicht klingt,
dann noch die hohe Mathematik der Teilung und ein gewisses Ergebnis ist da
ok, hier im Forum schon etwas unterschiedlicher breit als ich in Erinnerung hatte, notfalls 40+ Mal und mehr zu messen
oder ich gerade schon viele Ausnahmen erwischt
edit: irgendwie klingt das auch genau nach FontMetrics charWidth…,
bin nicht sicher ob ich das nur damals schlicht nicht kannte,
[quote=SlaterB]wie genau muss das werden?
beliebige Schriftarten oder nur eine?[/quote]
so genau, das der text gut aussieht… ^^
und welchen unterschied macht es, ob ich beliebige haben will oder nicht? ^^
sowieso dynamisch.
aber das bringt mich auf eine idee was du vorgeschlagen hast… man könnte ja einfach ein zeichen malen, und
dann per pixel durschlauf einafach höchsten, tiefsten, „linksten“, und „rechtsten“ wert suchen… das müsste doch eigentlich klappen?
*** Edit ***
aah… jetzt weiß ich warum charWidth immer gleich war…
ich habe aus… Reflex?.. die Schriftart Consolas verwendet…
und bei der sind alle Zeichen gleich breit ^^ fail…