Signatur
Beschreibung
imageloadfont() lädt eine Schriftart im GD-spezifischen Font-Format (.gdf) aus einer Datei und macht sie für die Verwendung mit Bildzeichenfunktionen wie imagestring(), imagestringup(), imagechar() und imagecharup() verfügbar. Ab PHP 8.1 gibt die Funktion ein GdFont-Objekt zurück; in älteren Versionen war der Rückgabewert eine Ganzzahl (Font-ID, immer ≥ 5).
GD-Schriftartdateien sind einfache Bitmap-Schriften mit festem Zeichenabstand. Sie eignen sich vor allem dann, wenn eine einheitliche pixelgenaue Typografie ohne den Overhead von TrueType- oder FreeType-Schriften gewünscht ist. GD-Schriften können mit verschiedenen Hilfsprogrammen erzeugt werden, die das entsprechende Binärformat erzeugen.
Im Gegensatz zu TrueType-Schriften (imagettftext()) können GD-Bitmap-Schriften nicht skaliert oder rotiert werden; ihre Größe ist fest vorgegeben. Für flexible Typografie empfiehlt sich daher der Einsatz von imagettftext() in Verbindung mit TrueType-Fonts.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename Pflicht | string | Pfad zur GD-Schriftartdatei (.gdf). Der Pfad kann absolut oder relativ zum aktuellen Arbeitsverzeichnis sein. |
Rückgabewert
GdFont-Instanz zurück, die direkt an Zeichenfunktionen übergeben werden kann. In PHP < 8.1 wurde eine Integer-Font-ID (≥ 5) zurückgegeben. Im Fehlerfall (Datei nicht gefunden oder ungültiges Format) wird false zurückgegeben.Beispiele
Benutzerdefinierte Schrift laden und Text in ein Bild schreiben
<?php
// Bild erstellen
$image = imagecreatetruecolor(300, 50);
// Farben definieren
$weiss = imagecolorallocate($image, 255, 255, 255);
$schwarz = imagecolorallocate($image, 0, 0, 0);
// Hintergrund füllen
imagefill($image, 0, 0, $weiss);
// Benutzerdefinierte Schrift laden
$font = imageloadfont('/pfad/zu/meinefont.gdf');
if ($font === false) {
die('Schriftartdatei konnte nicht geladen werden.');
}
// Text mit der geladenen Schrift schreiben
imagestring($image, $font, 10, 15, 'Hallo Welt!', $schwarz);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Schriftbreite und -höhe einer geladenen Schrift ermitteln
<?php
// Schrift laden
$font = imageloadfont('/pfad/zu/meinefont.gdf');
if ($font !== false) {
// Ab PHP 8.1: GdFont-Objekt, daher imagefontwidth/imagefontheight verwenden
$breite = imagefontwidth($font);
$hoehe = imagefontheight($font);
echo "Zeichenbreite: {$breite}px, Zeichenhöhe: {$hoehe}px\n";
} else {
echo "Schriftdatei konnte nicht geladen werden.\n";
}
// Wichtig · Fallstricke
PHP 8.1+: Der Rückgabewert wurde von int zu GdFont geändert. Code, der den Rückgabewert direkt als Integer verwendet (z. B. vergleicht oder addiert), muss angepasst werden.
Unterstütztes Format: Nur das spezifische GD-Binärformat (.gdf) wird unterstützt. Andere Schriftformate wie TTF, OTF oder BDF können nicht mit imageloadfont() geladen werden.
Vordefinierte Schriften: GD stellt die Schriften 1–5 fest eingebaut zur Verfügung. Mit imageloadfont() geladene Schriften erhalten ab PHP < 8.1 IDs beginnend bei 5, sodass Verwechslungen möglich sind. Es empfiehlt sich daher, immer die Variable zu nutzen, in der die Font-ID gespeichert wurde.