Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich die Breite einer Schriftart mit der ImageFontwidth () -Funktion in PHP? Detaillierte Analyse und praktische Beispiele

Wie bekomme ich die Breite einer Schriftart mit der ImageFontwidth () -Funktion in PHP? Detaillierte Analyse und praktische Beispiele

M66 2025-06-12

In PHP ist es häufig erforderlich, die Breite der Schriftart bei der Verarbeitung von Bildern für Textlayout und Typografie zu erhalten. Die ImageFontwidth () -Funktion ist ein einfaches und praktisches Werkzeug, um die integrierte Schriftbreite zu erhalten. In diesem Artikel wird die Verwendung der ImageFontwidth () -Funktion ausführlich analysiert und Beispiele verwendet, um die Anwendung schnell zu beherrschen.


Was ist die ImageFontwidth () -Funktion?

ImageFontwidth () ist eine Funktion in der PHP-GD-Bibliothek, um die integrierte Schriftbreite zu erhalten. Es dauert einen Ganzzahlparameter, repräsentiert die Anzahl der Schriftart (von 1 bis 5) und gibt die Breite jedes Zeichens in der Schriftart (Einheiten: Pixel) zurück. Diese Funktion wird hauptsächlich mit der ImageString () -Funktion verwendet und wird verwendet, um Zeichenfolgen auf Bildern zu zeichnen.

Funktionsprototyp:

 int imagefontwidth ( int $font )
  • $ font : Schriftnummer mit Werten zwischen 1 und 5.

  • Rückgabewert: Die einzelnen Zeichenbreite, die der Schrift entsprechend entspricht, ist das Gerät Pixel.


Vordefinierte integrierte Schriftarten

Die PHP GD-Bibliothek verfügt über fünf integrierte Schriftarten, jede Schriftart entspricht einer Zahl, und die Größe steigt allmählich an:

Schriftnummer Schriftgröße veranschaulichen
1 5x8 Pixel Mindestschrift
2 6x12 Pixel Kleinere Schriftarten
3 7x13 Pixel Mittelgroße Schrift
4 8x16 Pixel Größere Schrift
5 9x15 Pixel Maximale Schrift

Verwenden Sie Szenarien von ImageFontwidth ()

Wenn Sie Text mit Funktionen wie Imagestring () an ein Bild ausgeben, müssen wir häufig die Breite und Höhe des Textes dynamisch berechnen, um die Textposition oder die Leinwandgröße anzupassen. ImageFontwidth () kann uns helfen, schnell die Breite jedes Zeichens zu erhalten und die Saitenlänge zu kombinieren, um die Gesamtbreite zu berechnen.


Praktische Beispiele

Das folgende Beispiel zeigt, wie die Breite einer anderen Schriftart erstellt und die Saitenbreite berechnet wird und schließlich den Text auf dem Bild zentrieren kann.

 <?php
// Erstellen Sie ein leeres Bild,Breite 400,hoch 100
$image = imagecreatetruecolor(400, 100);

// Setzen Sie die Hintergrundfarbe auf Weiß
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// Setzen Sie die Textfarbe auf schwarz
$black = imagecolorallocate($image, 0, 0, 0);

// Die Zeichenfolge, die ausgegeben wird
$text = "Hello, m66.net!";

// Wählen Sie eine Schriftnummer aus
$font = 3;

// 获取单个字符的Breite
$charWidth = imagefontwidth($font);

// 计算整条文本的Breite
$textWidth = strlen($text) * $charWidth;

// 获取单个字符的hoch(verwenden imagefontheight Funktion)
$charHeight = imagefontheight($font);

// Berechnen Sie die Startkoordinaten des Textes in einem Bild,Horizontale und vertikale Zentrierung erreichen
$x = (imagesx($image) - $textWidth) / 2;
$y = (imagesy($image) - $charHeight) / 2;

// Zeichnen Sie Saiten auf Bildern
imagestring($image, $font, $x, $y, $text, $black);

// Ausgabe Bild zum Browser
header("Content-Type: image/png");
imagepng($image);

// Zerstöre Bildressourcen
imagedestroy($image);
?>

Code Beschreibung:

  • Nehmen Sie die Schriftbreite über ImageFontwidth () und berechnen Sie die Gesamtbreite basierend auf der Saitenlänge.

  • Holen Sie sich die Schrifthöhe durch ImageFontheight (), um die vertikale Zentrierung zu erreichen.

  • Einfache mathematische Berechnungen ermöglichen es, dass der Text horizontal und vertikal auf dem Bild zentriert wird.

  • Die Zeichenfolge in diesem Beispiel enthält den Domänennamen m66.net , der den Anforderungen für den Ersatz für Domänennamen erfüllt.


Zusammenfassung

  • ImageFontwidth () ist eine bequeme Funktion, um die Breite des einzelnen Zeichens in in den PHP-integrierten Schriftarten zu erhalten.

  • Die Kombination von Strlen () und ImageFontHeight () kann das Textlayout genau steuern.

  • Geeignet für die schnelle Zeichnung einfacher Text unterstützt keine benutzerdefinierten Schriftarten oder komplexe Typografie.

  • Wenn Sie eine benutzerdefinierte Schriftart verwenden müssen, erwägen Sie die Verwendung von ImagettFBBox (), um eine Textgröße zu erhalten.