Einzelnen Beitrag anzeigen

CTest

Registriert seit: 13. Apr 2010
Ort: Gehren
33 Beiträge
 
#3

AW: Zeichengröße, TrueType, Textmetric

  Alt 28. Mai 2013, 12:09
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
  Mit Zitat antworten Zitat