Start · Sprachen · PHP · Referenz · imagefontheight

imagefontheight

Funktion

Ermittelt die Höhe eines eingebauten GD-Schriftart-Zeichens in Pixeln.

seit PHP 4.0.0 Kategorie: image

Signatur

imagefontheight(int $font): int

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

Typ
int
Beschreibung
Gibt die Höhe eines einzelnen Zeichens der angegebenen Schriftart in Pixeln zurück. Bei gültiger Schriftartnummer immer ein positiver ganzzahliger Wert.

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";
}
Schriftart 1: Höhe = 8px Schriftart 2: Höhe = 8px Schriftart 3: Höhe = 13px Schriftart 4: Höhe = 16px Schriftart 5: Höhe = 15px

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.