# Fontgröße in Pixel angeben



## Kaan (29. Apr 2008)

Hallo!

Gibt es eine Möglichkeit die Schriftgröße anstatt in Punkten (kommt ja aus der Typografie) in Pixeln anzugeben?

Das Problem ist, dass ich viele unterschiedlich lange Texte in gleich breite Rechtecke schreiben muss und die Angabe unterschiedlicher Punktgrößen keine feine "Skalierung" ermöglichen.

mfg Kaan


----------



## Wildcard (29. Apr 2008)

> Gibt es eine Möglichkeit die Schriftgröße anstatt in Punkten (kommt ja aus der Typografie) in Pixeln anzugeben?





> Das Problem ist, dass ich viele unterschiedlich lange Texte in gleich breite Rechtecke schreiben muss und die Angabe unterschiedlicher Punktgrößen keine feine "Skalierung" ermöglichen.


Die Breite eines Buchstabens hängt vom selbst Buchstaben, der Schrift, der Font Größe und vielem mehr ab.
Geht es um eine komplette Zeile, kommt als zusätzlicher Faktor noch das Text Layout, Alignment usw. hinzu.
Das sich das nicht alles mit Schriftgröße X abhandeln lässt, sollte offensichtlich sein.
Die Frage ist also, was willst du? Das eine Schrift in ein Rechteck passt? Das eine Schrift ein Rechteck komplett ausfüllt?
Das wenn es nicht reicht skaliert wird? Ein Zeilenumbruch passiert? Skaliert wird wenn Zeilenumbrüche nicht genügen?
Etwas genauer wirst du dich schon ausdrücken müssen.


----------



## Gast (29. Apr 2008)

Es geht darum, dass ein Text wenn er nicht in das Rechteck hineinpasst (sonder zu breit ist) so herunterskaliert werden soll, dass er das Rechteck soweit wie möglich ausfüllt. Wenn ich die Schriftgröße jedoch in Punkt angebe ist das Anpassen nur sehr grob möglich und der Text ist dann oft ziemlich klein bzw. viel kleiner als die Breite des Rechtecks. 

Mfg Kaan


----------



## Wildcard (29. Apr 2008)

Die Breite eines Strings kannst du über die FontMetrics bekommen, die Schrift dann solange zu ändern, bis der String passt, macht aber keinen Spaß.
Ich würde eher das Graphics Objekt skalieren.


----------



## Kaan (29. Apr 2008)

Hallo!

Mein Ziel ist es sozusagen die Schriftgröße anstatt in Punkten in Pixeln anzugeben.

Ich will daher erreichen, dass ein bestimmter Text z.B. 10 Pixel hoch sein soll (ohne jetzt genauer auf Oberlänge, Unterlänge, etc. näher einzugehen). Wenn es nicht mit Pixeln möglich ist, wäre es auch denkbar die Punktangabe als Dezimalzahl anzugeben, um feinere Abstufungen in der Schriftgröße zu ermöglichen ...

Wie kann ich mein Problem am besten lösen? Die Lösung, das Image Objekt mit dem draufgeschriebenen Text zu skalieren, wäre natürlich eine Möglichkeit, aber nicht die optimale (Performance, Schriftqualität, ...).

Gibt es also noch andere Möglichkeiten die Schrifthöhe exakt in Pixeln oder in Punkten (aber Dezimalzahl) anzugeben?

mfg Kaan


----------



## Wildcard (29. Apr 2008)

Es ist immer eine Dezimalzahl (float)
http://java.sun.com/javase/6/docs/api/java/awt/Font.html#deriveFont(float)


----------

