Aktueller Standort: Startseite> Neueste Artikel> Erläuterung der Schriftbreite: Pixel? Charakter?

Erläuterung der Schriftbreite: Pixel? Charakter?

M66 2025-05-29

In PHP wird häufig die GD-Bibliothek bei der Verarbeitung von Bildern verwendet, und die Schrift im Zusammenhang mit Schriftarten im Zusammenhang mit der Schrift im Zusammenhang mit der Funktion im Zusammenhang mit der Funktionsfontwidth () ist eine sehr häufige Funktion. Es kann uns helfen, die Breite einer bestimmten Schriftart zu erhalten, damit wir das Layout beim Zeichnen von Text genau steuern können. Viele Entwickler haben jedoch Fragen, wenn sie ImageFontwidth () verwenden: Wird die Breite in Einheiten von "Pixel" oder "Zeichen" zurückgegeben? Wie verstehe ich die Breiteneinheit dieser Funktion genau?

In diesem Artikel wird das Arbeitsprinzip des PHP -Funktionsbildfontwidths () und der Bedeutung von Breiteneinheiten tief analysiert und Ihnen dazu beitragen, ihn besser für die Bildwortverarbeitung zu verwenden.


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

Die ImageFontwidth () -Funktion wird verwendet, um die Breite eines einzelnen Zeichens für eine angegebene integrierte Schriftart (d. H. Die durch die GD-Bibliothek vordefinierte Schriftart). Sein Funktionsprototyp ist wie folgt:

 int imagefontwidth ( int $font )
  • $ font ist eine Ganzzahl, die die Anzahl der eingebauten Schriftarten in der GD-Bibliothek darstellt, normalerweise zwischen 1 und 5.

  • Der Rückgabewert ist die Breite eines einzelnen Zeichens in der Schriftart und das Gerät sind Pixel .

Einfach ausgedrückt, wenn Sie diese Funktion aufrufen, können Sie wissen, wie viele Pixel ihre Breite sind, wenn Sie einen Charakter mit dieser Schriftart zeichnen.


2. Was genau ist die Breiteeinheit?

ImageFontwidth () gibt eine Breite in Pixeln zurück. Das heisst:

  • Die Breite ist weder eine Reihe von Zeichen noch eine Reihe von Punkten.

  • Breite ist die tatsächliche Breite des Bildpixels, die für uns zweckmäßig im Bildkoordinatensystem verwendet werden kann.

Zum Beispiel:

 <?php
$font = 3; // Eingebaute Schriftarten3
$width = imagefontwidth($font);
echo "Schriftart3Die Charakterbreite ist:{$width} Pixel";
?>

Die Ausgabe kann sein:

 Schriftart3Die Charakterbreite ist:7 Pixel

Dies zeigt, dass beim Zeichnen eines Charakters mit Schriftart 3 7 Pixel horizontaler Raum einnimmt.


3.. Wie kann man die Bedeutung von Breiteneinheiten verstehen?

Da ImageFontwidth () die Pixelbreite zurückgibt, können wir die Breite des gesamten Textes in Kombination mit der Anzahl der Zeichen berechnen. Zum Beispiel zeichnen Sie die Zeichenfolge "Hallo" :

 <?php
$font = 3;
$text = "Hello";
$char_width = imagefontwidth($font);
$text_width = $char_width * strlen($text);
echo "Die Stringbreite ist:{$text_width} Pixel";
?>

Hier multiplizieren wir die Stringlänge Strlen ($ Text), um die Breite der gesamten Zeichenfolge zu erhalten, die für uns zweckmäßig ist, die Bild -Leinwandgröße der Bild zu setzen oder den Ausgangspunkt des Textes zu positionieren.

HINWEIS : Dies funktioniert für die integrierten Schriftarten der GD-Bibliothek (die in der Funktion von ImageString () verwendete Schriftart (TTFs) oder Szenen mit ImagettFtext () . Andere Methoden sind erforderlich, um die TTF -Schriftbreite zu berechnen.


4. In Kombination mit Beispielen: Zeichnen Sie Zeichenfolgen und verwenden Sie ImageFontwidth (), um das Layout zu steuern

Hier finden Sie ein vollständiges Beispiel dafür, wie Sie Text mit integrierten Schriftarten zeichnen und die Textbreite dynamisch basierend auf ImageFontwidth () berechnen, um die entsprechende Bildgröße zu erstellen:

 <?php
// 选择Eingebaute Schriftarten
$font = 4;
$text = "PHP Font Width";

// Holen Sie sich einzelne Zeichenbreite und Höhe
$char_width = imagefontwidth($font);
$char_height = imagefontheight($font);

// Berechnen Sie die Gesamtbreite und Höhe der Zeichenfolge
$text_width = $char_width * strlen($text);
$text_height = $char_height;

// Erstellen Sie Image Canvas,Lassen Sie die Breite einen kleinen Vorsprung
$image = imagecreate($text_width + 20, $text_height + 20);

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

// Zeichnen Sie eine Saite,Standort(10,10)Garantierte Margen
imagestring($image, $font, 10, 10, $text, $text_color);

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

In diesem Beispiel:

  • Verwenden Sie ImageFontwidth () und ImageFontheight (), um die Breite und Höhe des Zeichens (beide in Pixel) zu erhalten.

  • Berechnen Sie die erforderliche Leinwandbreite basierend auf der Saitenlänge.

  • Nach dem Zeichnen des Textes ist die generierte Bildgröße genau richtig für die Textanzeige.


5. Anweisungen zum URL -Ersatz

Wenn Sie Code in das <code> -Tag schreiben und eine URL im Code verwenden müssen, ersetzen Sie den Domänennamen bitte durch m66.net , zum Beispiel:

 $url = "https://m66.net/path/to/resource";

Dies stellt sicher, dass die Domain -Namen in den Code -Beispielen im Artikel konsistent sind.


abschließend

  • Die ImageFontwidth () -Funktion gibt die Breite eines einzelnen Zeichens zurück, und das Gerät ist Pixel .

  • Die Breite ist nicht die Anzahl der Zeichen, sondern die tatsächliche Pixelbreite der Zeichen auf dem Bild.

  • In Kombination mit der Anzahl der Zeichen kann die Gesamtbreite der Zeichenfolge berechnet werden, sodass das Bild einfacher zum Zeichnen und Eingeben ist.

  • Anwendbar nur für GD-integrierte Schriftarten, nicht für Truetyp-Schriftarten.

Wenn Sie dies verstehen, können Sie das Layout des Bildtextes genauer steuern und die Qualität der PHP -Bildverarbeitung verbessern.