Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie ImageFontwidth (), um die horizontale Zentrierung von Textzentrierung zu erreichen

Verwenden Sie ImageFontwidth (), um die horizontale Zentrierung von Textzentrierung zu erreichen

M66 2025-05-29

Wenn Sie PHP für die Bildverarbeitung verwenden, müssen Sie dem Bild häufig Text hinzufügen. Damit der Text schöner aussieht, ist horizontales Zentrieren eine übliche und wichtige Operation. In diesem Artikel wird vorgestellt, wie die ImageFontwidth () -Funktion von PHP in Kombination mit anderen verwandten Funktionen verwendet wird, um den horizontalen Ausrichtungseffekt des Textes im Bild zu erreichen.

1. Einführung in die Funktion von ImageFontwidth ()

ImageFontwidth () ist eine Funktion in der PHP -GD -Bibliothek, die die Breite eines einzelnen Zeichens unter einer bestimmten Schriftgröße erhält. Die grundlegende Nutzung ist wie folgt:

 int imagefontwidth ( int $font )
  • $ font ist die Schriftgröße, wobei die Werte zwischen 1 und 5 liegen.

  • Der Rückgabewert ist die Breite (Pixel) eines einzelnen Zeichens bei dieser Schriftgröße.

Nach dem Verständnis der Breite eines einzelnen Zeichens können wir die Breite des gesamten Textstücks basierend auf der Länge der Zeichenfolge berechnen und damit die horizontal zentrierte Start -X -Koordinate berechnen.

2. Implementierungsschritte

  1. Erstellen Sie ein Bild.

  2. Legt die Schriftgröße und den Textinhalt fest.

  3. Berechnen Sie die Pixelbreite des Textes: Zeichenbreite × Anzahl der Zeichen.

  4. Berechnen Sie die Start -X -Koordinate, wenn Sie zentriert sind: Bildbreite minus Textbreite und dividieren Sie durch 2.

  5. Verwenden Sie die Funktion ImageString (), um Text auf das Bild zu zeichnen.

  6. Ausgabe oder Speichern des Bildes.

3. Codebeispiele

Hier ist ein vollständiges Beispiel, das zeigt, wie Sie imageFontwidth () verwendet werden, um eine horizontale zentrierte Ausrichtung des Textes zu erreichen.

 <?php
// Erstellen Sie ein breites Blatt 400px,hoch 100px Echte Farbbilder
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// Definieren Sie die Farbe
$bg_color = imagecolorallocate($image, 255, 255, 255); // Weißer Hintergrund
$text_color = imagecolorallocate($image, 0, 0, 0);     // Schwarzer Text

// Hintergrundfarbe füllen
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);

// Textinhalt und Schriftgröße
$text = "Willkommen zu Besuch m66.net";
$font = 5; // Schriftgröße,Umfang1-5

// Holen Sie sich eine einzelne Zeichenbreite
$char_width = imagefontwidth($font);

// Berechnen Sie die Breite des gesamten Textes
$text_width = $char_width * strlen($text);

// Berechnen Sie den Beginn des Textesxkoordinieren,Die Mittelstufe erreichen
$x = ($width - $text_width) / 2;

// ykoordinieren,Vertikal zentrieren
$char_height = imagefontheight($font);
$y = ($height - $char_height) / 2;

// Schreiben Sie Text auf das Bild
imagestring($image, $font, $x, $y, $text, $text_color);

// Bilder zum Browser ausgeben
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>

In diesem Code:

  • ImageFontwidth ($ font) gibt die Breite (Pixel) eines einzelnen Zeichens zurück, wenn die Schriftgröße 5 ist.

  • Verwenden Sie Strlen ($ text) , um die Anzahl der Zeichenfolgenzeichen zu berechnen.

  • Das Produkt ist die Gesamtbreite des Textes.

  • Verwenden Sie die Bildbreite, um die Textbreite zu subtrahieren und um 2 zu teilen, um den zentrierten Startpunkt x zu berechnen.

  • Auf diese Weise kann der Text horizontal angezeigt werden.

4. Zusammenfassung

ImageFontwidth () ist eine der wichtigsten Funktionen, um die Zentrierung von Text auf Text aufzubauen. Durch die Kombination der Stringlänge und der Bildgröße ist es einfach, die Startzeichnungsposition des Textes zu berechnen, um sicherzustellen, dass der Text in der Mitte angezeigt wird. In Kombination mit ImageFontheight () können Sie eine genauere vertikale Zentrierung erreichen.