Hallo,
Ich suche auch nach dem Verhältnis Höhe Großbuchstabe: Texthöhe.
Leider komme ich nicht ganz dahinter, aus den Werten der Windows-Textmetric kann ich nicht auf die tatsächliche Höhe schließen.
Beim einfachen Versuch ein Großbuchstaben auf ein Bitmap zu schreiben
Delphi-Quellcode:
BM := TBitmap.Create;
try
AFontname := 'Arial'
BM.canvas.Font.Name := AFontname;
BM.canvas.Font.Height := 2000;
BM.height := 2000;
BM.width := 1100;
TextOut(BM.Canvas.Handle, 0, 0, 'E', 1);
BM.SaveToFile('C:\' + AFontname + '.bmp');
finally
BM.Free;
end;
ist das ausgegebene Zeichen 1282pxl hoch. Oberhalb 339pxl und unten 379pxl Abstand.
Descent stimmt auch mit dem Wert aus der Textmetric überein.
Ascent: 1621
Descent: 379
InternalLeading: 210
ExternalLeading: 59
Auch bei anderen Schriftarten kommen ähnliche Ergenisse zustande. Man erkennt schon einen Zusammenhang von den Leadings und der gesuchten Höhe, aber nichts genaues.
Laut
MSDN gibt Internalleading den Freiraum oberhalb an.
Zitat:
Leider verwirrt mich das Ergebnis bei unterschiedlichen Text-Größen (TFont.Size). Das Verhältnis ist nich konstant - da sich der Charakter der Schrift nicht ändert müsste dieses doch so sein oder?
Die nicht konstanten Werte könnten davon kommen, dass in den TrueTypeFonts für unterschiedliche Größen andere Zeichen definiert sind.
Grüße