Quiq::GD::Font - GD- oder TrueType-Font
Quiq::Hash
Abstraktion für GD- und TrueType-Fonts, die von GD nicht gemacht wird.
Name Breite Höhe ---------------- ------ ---- gdTinyFont 5 8 gdSmallFont 6 13 gdMediumBoldFont 7 13 gdLargeFont 8 16 gdGiantFont 9 15
GD-Font instantiieren
$fnt = Quiq::GD::Font->new('gdSmallFont');
TrueType-Font instantiieren
$fnt = Quiq::GD::Font->new('/opt/fonts/pala.ttf',20);
$fnt = $class->new($name); $fnt = $class->new($name,$pt); $fnt = $class->new("$name,$pt"); $fnt = $class->new($fnt);
Instantiiere GD- oder TrueType-Font und liefere eine Referenz auf dieses Objekt zurück. Wird bei einem TrueType-Font keine Fontgröße angegeben, wird 10pt angenommen.
Ein TrueType-Font kann auch mit einem einzigen Argument - als Arrayreferenz [$name,$pt] - angegeben werden.
Wird ein bereits instantiiertes Font-Objekt als Parameter übergeben, wird dieses einfach zurückgeliefert.
$name = $fnt->name;
Liefere den Namen des Font. Bei einem GD-Font ist dies der Name, wie er beim Konstruktor angegeben wurde. Bei einem TrueType-Font ist es der Grundname der Datei, also ohne Pfad und Endung .ttf.
.ttf
$pt = $fnt->pt;
Liefere die Größe des Font. Bei einem GD-Font undef, bei einem TrueType-Font die Größe in pt.
undef
$bool = $fnt->isTrueType;
Liefere 1 wenn der Font ein TrueType-Font ist, liefere 0, wenn er ein GD-Font ist.
($width,$height,$xOffset,$yOffset) = $fnt->stringGeometry($str,@opt);
Schreibe den Text aufrecht.
Gib Informationen auf STDDER aus.
Liefere den Platzbedarf (Breite, Höhe) und den x- und y-Offset der Zeichenkette $str.
Geometrie
TrueType-Fonts können um einen beliebigen Winkel gedreht werden.
4,5 /\ / \ / T \ 2,3 / X / 6,7 / E / \ T / \ / \/ 0,1 $width = $bounds[2]-$bounds[6] $height = $bounds[1]-$bounds[5] $xOffset = -$bounds[6] $yOffset = $up? 0: -$bounds[5]
Von dieser Möglichkeit machen wir allerdings keinen Gebrauch. Wir lassen lediglich 0 und 90 Grad zu. Das sind die Möglichkeiten, die die GD-Fonts erlauben.
$width = $fnt->charWidth(@opt);
width()
Vertikaler Text.
Liefere die maximale Breite eines Fontzeichens.
Da die GD-Fonts fixed/monospaced Fonts sind, ist die Breite aller Zeichen gleich.
Bei TrueType-Fonts wird die Breite der Zeichenkette "M" ermittelt.
$height = $fnt->charHeight(@opt);
height()
Liefere die maximale Höhe eines Fontzeichnes.
Da die GD-Fonts fixed/monospaced Fonts sind, ist die Höhe aller Zeichen gleich.
Ist der Font ein TrueType-Font wird die Höhe der Zeichenkette "Xy" bestimmt.
$width = $fnt->digitWidth(@opt);
Liefere die Breite einer Ziffer. Alle Ziffern eines Font sollten dieselbe Breite haben. Für GD-Fonts ist dies ohnehin der Fall. Bei TrueType-Fonts ermitteln wir die Breite der "0".
$height = $fnt->digitHeight(@opt);
Liefere die Höhe einer Ziffer. Alle Ziffern eines Font sollten dieselbe Höhe haben. Für GD-Fonts ist dies ohnehin der Fall. Bei TrueType-Fonts ermitteln wir die Höhe der "0".
$n = $fnt->stringWidth($str,@opt);
Liefere den horizontalen Platzbedarf der Zeichenkette $str.
$n = $fnt->stringHeight($str,@opt);
Die folgenden Methoden liefern den Offset, der benötigt wird, wenn ein Text eng an eine rechte oder obere Grenze ausgerichtet werden soll, wie z.B. bei der Beschriftung einer X- oder Y-Achse.
Die Offsets sind Font-abhängig. Für die GD-Fonts und den TrueType-Font pala bis 20pt ist der Offset ausgearbeitet. Für andere TrueType-Fonts und Fontgrößen müssen die Methoden u.U. erweitert werden.
$n = $g->alignRightOffset;
Der Korrektur-Offset ist so bemessen, dass der Text möglichst dicht an einen rechten Rand angrenzt, z.B. das Label an den Tick einer Y-Achse.
$n = $g->alignTopOffset;
Der Korrektur-Offset ist so bemessen, dass der Text möglichst dicht an einen oberen Rand angrenzt, z.B. das Label an den Tick einer X-Achse.
$n = $fnt->hCenterOffset;
Bei horizontal zentriertem Text ist manchmal eine Korrektur nötig, die diese Methode liefert.
1.151
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.