"Echte" Höhe von Ausgabetext ermitteln
"Echte" Höhe von Ausgabetext ermitteln
Moin.
Ich möchte einen Text in einen genau angepassten Sprite zeichnen, um diese dann später anstelle der langsamen Zeichenfunktionen auf den Bildschirm zu bringen. Nun habe ich Probleme bei der Errechnung der Spritegrößen:
- Um die Breite in Pixeln eines Strings zu ermitteln gibt es ja die Funktion TextLength(...). -> wunderbar, passt genau!
- Für die Texthöhe könnte man ja die Angabe Size bei laden eines Fonts annehmen... -> probiert man dies aus wird man feststellen, dass dies nicht stimmt, da der Text meist höher ist, als die ursprünglich geladene Größe der Schriftart. Dies hängt mit all den diversen Sonderzeichen zusammen, welche natürlich höher werden können als ein "normaler" Buchstabe.
Nun meine Frage: Wie ermittle ich die korrekte Texthöhe, um die Größe meines Sprites korrekt zu dimensionieren?
Hab die Suchfunktion des Forums schon eifrig genutzt, jedoch leider nichts gefunden...
MfG
Ralle
Ich möchte einen Text in einen genau angepassten Sprite zeichnen, um diese dann später anstelle der langsamen Zeichenfunktionen auf den Bildschirm zu bringen. Nun habe ich Probleme bei der Errechnung der Spritegrößen:
- Um die Breite in Pixeln eines Strings zu ermitteln gibt es ja die Funktion TextLength(...). -> wunderbar, passt genau!
- Für die Texthöhe könnte man ja die Angabe Size bei laden eines Fonts annehmen... -> probiert man dies aus wird man feststellen, dass dies nicht stimmt, da der Text meist höher ist, als die ursprünglich geladene Größe der Schriftart. Dies hängt mit all den diversen Sonderzeichen zusammen, welche natürlich höher werden können als ein "normaler" Buchstabe.
Nun meine Frage: Wie ermittle ich die korrekte Texthöhe, um die Größe meines Sprites korrekt zu dimensionieren?
Hab die Suchfunktion des Forums schon eifrig genutzt, jedoch leider nichts gefunden...
MfG
Ralle
-
Kekskiller
- Beiträge: 752
- Registriert: 14.09.2004 21:39
- Kontaktdaten:
Mh... eigentlich bräuchte man doch nur nachgucken, wo genau der erste
Piel in Farbe anfängt, oder? Denn, schließlich willst du ja die tatsächliche Größe rausfinden.
Und da der dargestellte Text eh nur aus zwei Farben besteht, bräuchtest
du nur ein vorher erstelltes Bild mit den "unnormalen" Größe abtasten und
prüfen, auf welcher Y-Ebene der erste Farbpixel liegt. Dann auch noch von
unten und der Abstand zwischen ihnen ist die richtige Größe. Dann nur von
der oberen Pixelposition und mit der ausgerechneten Breite kopieren und
zack ist es fertig. Natürlich müsstest du auch erstmal dies Prozedur überall
rübergehen lassen, was natürlich Zeit beansprucht.
Piel in Farbe anfängt, oder? Denn, schließlich willst du ja die tatsächliche Größe rausfinden.
Und da der dargestellte Text eh nur aus zwei Farben besteht, bräuchtest
du nur ein vorher erstelltes Bild mit den "unnormalen" Größe abtasten und
prüfen, auf welcher Y-Ebene der erste Farbpixel liegt. Dann auch noch von
unten und der Abstand zwischen ihnen ist die richtige Größe. Dann nur von
der oberen Pixelposition und mit der ausgerechneten Breite kopieren und
zack ist es fertig. Natürlich müsstest du auch erstmal dies Prozedur überall
rübergehen lassen, was natürlich Zeit beansprucht.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
wenn ich mich nicht irre, ist die pt-größe einer schriftart die anzahl punkte
von der satzlinie bis zum oberen ende.
eigentlich müsste die gesamthöhe ein festes vielfaches der pt-größe sein.
(*1.4 oder sowas)
btw:
gibts dein avatar-bild auch in groß und ohne den schwarzen fleck in der mitte?
kannst mir ja mal ne PN schicken, wenn du magst...
von der satzlinie bis zum oberen ende.
eigentlich müsste die gesamthöhe ein festes vielfaches der pt-größe sein.
(*1.4 oder sowas)
btw:
gibts dein avatar-bild auch in groß und ohne den schwarzen fleck in der mitte?
kannst mir ja mal ne PN schicken, wenn du magst...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- blbltheworm
- Beiträge: 217
- Registriert: 22.09.2004 19:36
- Wohnort: Auf der schönen Schwäbischen Alb
Das Problem gab es schonmal
http://www.robsite.de/php/pureboard/viewtopic.php?t=694.
Dort kannst du auch die Lösung des Problems finden.
Oder wenn du direkt zur Lösung möchtest
http://www.robsite.de/php/pureboard-arc ... textheight.
http://www.robsite.de/php/pureboard/viewtopic.php?t=694.
Dort kannst du auch die Lösung des Problems finden.
Oder wenn du direkt zur Lösung möchtest
http://www.robsite.de/php/pureboard-arc ... textheight.
Und genau diese Zeit habe in an dieser Stelle nichtKekskiller hat geschrieben:Mh... eigentlich bräuchte man doch nur nachgucken, wo genau der erste
Piel in Farbe anfängt, oder? Denn, schließlich willst du ja die tatsächliche Größe rausfinden.
Und da der dargestellte Text eh nur aus zwei Farben besteht, bräuchtest
du nur ein vorher erstelltes Bild mit den "unnormalen" Größe abtasten und
prüfen, auf welcher Y-Ebene der erste Farbpixel liegt. Dann auch noch von
unten und der Abstand zwischen ihnen ist die richtige Größe. Dann nur von
der oberen Pixelposition und mit der ausgerechneten Breite kopieren und
zack ist es fertig. Natürlich müsstest du auch erstmal dies Prozedur überall
rübergehen lassen, was natürlich Zeit beansprucht.
ralle
Ich meine mich errinern zu können das es im Pure-Board Archiv mal ein Codesnippet gab mit dem man dies über den API Web berwekstelligen konnte. Leider habe ich keine Zeit um danach zu suchen da ich gleich meine Magenmedizin nehmen muss und dann schlafen gehe. Manche Menschen müssen ins Praktikum ~_~
edit: Doof von mir. Hab ich ein klein Post übersehn ~_~
edit: Doof von mir. Hab ich ein klein Post übersehn ~_~
Zuletzt geändert von MVXA am 26.01.2005 00:23, insgesamt 1-mal geändert.
Hmmm, da wünsch ich mir doch lieber einen PB-Internen Befehlblbltheworm hat geschrieben:Das Problem gab es schonmal
http://www.robsite.de/php/pureboard/viewtopic.php?t=694.
Dort kannst du auch die Lösung des Problems finden.
Oder wenn du direkt zur Lösung möchtest
http://www.robsite.de/php/pureboard-arc ... textheight.
-
Kekskiller
- Beiträge: 752
- Registriert: 14.09.2004 21:39
- Kontaktdaten:
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Guten Morgen,
Die X2D Library kann die echte Höhe eines Zeichensatzes mittels der Funktion
Die X2D-Lib ist von Mirko Ellinger.
Die X2D Library kann die echte Höhe eines Zeichensatzes mittels der Funktion
herausfinden.X2D_GetFontHeight()
Syntax
Height.l = X2D_GetFontHeight()
Description
Returns the line-heigth of the current font used by PureBasic.
Attention: This represents not the same value as the one given to the LoadFont()-procedure.
Die X2D-Lib ist von Mirko Ellinger.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
