Signatur
Beschreibung
imagefontheight() gibt die Höhe eines einzelnen Zeichens der angegebenen eingebauten GD-Schriftart in Pixeln zurück. Diese Funktion bezieht sich ausschließlich auf die fünf vordefinierten Bitmap-Schriftarten (1–5), die direkt in der GD-Bibliothek enthalten sind, sowie auf mit imageloadfont() geladene benutzerdefinierte Schriftarten.
Die Funktion ist nützlich, wenn Textblöcke mit imagestring() oder imagestringup() positioniert werden müssen und die genaue Zeichenhöhe für die Berechnung von Zeilenabständen oder Textfeldgrenzen benötigt wird.
Je höher die Schriftartnummer (1 = kleinste, 5 = größte), desto mehr Pixel werden pro Zeichen verwendet. Für TrueType-Schriften (imagettftext()) ist diese Funktion nicht zuständig — dort werden Höheninformationen über imagettfbbox() ermittelt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $font Pflicht | int | Die Schriftartnummer. Eingebaute Schriftarten: 1 bis 5 (aufsteigend nach Größe). Für mit imageloadfont() geladene Schriftarten wird die zurückgegebene Kennung verwendet. |
Rückgabewert
Beispiele
Höhe der eingebauten Schriftarten ausgeben
<?php
// Höhe jeder eingebauten GD-Schriftart ausgeben
for ($font = 1; $font <= 5; $font++) {
$height = imagefontheight($font);
echo "Schriftart $font: Höhe = {$height}px\n";
}
Mehrere Textzeilen zentriert auf ein Bild schreiben
<?php
// Bild erstellen
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
$weiss = imagecolorallocate($image, 255, 255, 255);
$schwarz = imagecolorallocate($image, 0, 0, 0);
// Hintergrund weiß füllen
imagefilledrectangle($image, 0, 0, $width - 1, $height - 1, $weiss);
$font = 4;
$fontH = imagefontheight($font);
$fontW = imagefontwidth($font);
$zeilen = ['Hallo Welt', 'PHP GD Demo'];
$zeilenabstand = 4;
foreach ($zeilen as $index => $zeile) {
$textBreite = strlen($zeile) * $fontW;
$x = (int)(($width - $textBreite) / 2);
$y = 10 + $index * ($fontH + $zeilenabstand);
imagestring($image, $font, $x, $y, $zeile, $schwarz);
}
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Nur für Bitmap-Schriftarten: imagefontheight() funktioniert ausschließlich mit den eingebauten GD-Schriftarten (1–5) und per imageloadfont() geladenen Bitmap-Fonts. Für TrueType- oder FreeType-Schriften (imagettftext()) müssen stattdessen imagettfbbox() oder imageftbbox() verwendet werden.
Ab PHP 8.1 wird imagefontheight() mit einem GdFont-Objekt als Parameter verwendet, wenn imageloadfont() ein solches zurückgibt — die Übergabe eines int-Werts für eingebaute Schriften bleibt aber weiterhin gültig.