Aktueller Standort: Startseite> Neueste Artikel> Die Schriftnummer, die vor der Verwendung von ImageFontwidth () bekannt sein muss ()

Die Schriftnummer, die vor der Verwendung von ImageFontwidth () bekannt sein muss ()

M66 2025-05-28

ImageFontwidth () ist eine relativ einfache, aber sehr praktische Funktion, wenn die GD -Bibliothek von PHP für die Bildverarbeitung verwendet wird. Seine Funktion besteht darin, die Breite der Schriftart zurückzugeben, die der angegebenen Schriftnummer entspricht. Viele Entwickler verstehen jedoch nicht wirklich die tatsächliche Bedeutung von Schriftzahlen und ihre Auswirkungen auf das Bildlayout, bevor sie es verwenden. In diesem Artikel werden die wichtigsten Wissenspunkte, die Sie kennen müssen, vor dem Aufrufen von ImageFontwidth () eingehend untersucht.

1. Ursprung und Definition der Schriftnummer

In der GD -Bibliothek werden nicht alle Schriftarten frei ausgewählt. PHP liefert einen vordefinierten Satz integrierter Schriftarten, die von 1 bis 5 nummeriert sind. Jede Zahl entspricht einer Reihe von Schriftarten unterschiedlicher Größen, die monospasiert sind.

Schriftnummer Schriftbreite Schrifthöhe
1 6 Pixel 8 Pixel
2 8 Pixel 12 Pixel
3 10 Pixel 16 Pixel
4 12 Pixel 16 Pixel
5 12 Pixel 24 Pixel

Diese Zahlen sind die Grundlage für die Verwendung von Funktionen wie Imagestring () , ImagestringUp () , ImageChar () usw., dh den Parametern, die Sie beim Aufrufen von ImageFontwidth () oder imageFontHeight () übergeben müssen.

2. Grundlegende Verwendung von ImageFontwidth ()

Die Syntax von ImageFontwidth () ist sehr einfach:

 $width = imagefontwidth($font);

wobei $ font die oben erwähnte Schriftnummer ist. Diese Funktion gibt die Breite (in Pixeln) jedes Zeichens der Schriftart zurück. Dies ist bei der Berechnung der genauen Position und des Begrenzungsfelds des Textes im Bild von entscheidender Bedeutung.

Nehmen wir beispielsweise an, Sie verwenden Schriftart Nr. 3 und möchten "Hallo" ausgeben:

 $font = 3;
$text = "Hello";
$textWidth = imagefontwidth($font) * strlen($text);

Auf diese Weise können Sie wissen, dass die für die Ausgabe erforderliche Breite dieser Text 10 * 5 = 50 Pixel beträgt.

3. Verwendung mit Imagestring ()

Sobald Sie die Schriftbreite verstanden haben, können Sie Text im Bild genauer zeichnen:

 $img = imagecreate(200, 50);
$bg = imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocate($img, 0, 0, 0);

$text = "Welcome!";
$font = 4;
$x = (200 - imagefontwidth($font) * strlen($text)) / 2;
$y = (50 - imagefontheight($font)) / 2;

imagestring($img, $font, $x, $y, $text, $color);

header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);

Dieser Code zentriert sich "Willkommen!" Auf einem 200x50 weißen Bild.

4. Tatsächlicher Fall: Berechnen Sie die Bildbreite des Verifizierungscode

Beim Erstellen eines einfachen Verifizierungscodes können Sie die folgende Logik schreiben, um Bilder der richtigen Breite dynamisch zu erstellen:

 $code = "ABCD";
$font = 5;
$width = imagefontwidth($font) * strlen($code);
$height = imagefontheight($font);
$image = imagecreate($width + 20, $height + 10); // Zusätzlicher Weißraum

Auf diese Weise können Sie die Bildgröße automatisch entsprechend dem Verifizierungscode unterschiedlicher Länge einstellen, um eine Überfüllung von Text oder übermäßigem Bild und der Verschwendung der Bandbreite zu vermeiden.

5. Dinge zu beachten

  1. ImageFontwidth () funktioniert nur mit integrierten Schriftarten (Nummern 1 ~ 5) und gilt nicht für TrueType-Schriftarten, die über ImagettFtext () verwendet werden.

  2. Wenn eine illegale Schriftnummer übergeben wird, gibt die Funktion falsch zurück.

  3. Einige Schriftarten (z. B. die Zahlen 4 und 5) haben die gleiche Breite, aber unterschiedliche Höhen. Verlassen Sie sich also nicht nur auf ImageFontwidth () , sollten aber in Verbindung mit ImageFontheight () verwendet werden.

6. Berechnen Sie die Textlänge im Link dynamisch

Wenn Sie dynamische Bildlinks mit Text generieren, wie z. B.:

 $url = "https://m66.net/generate-image.php?text=HelloWorld";

Möglicherweise möchten Sie im Voraus wissen, wie lange die Pixel dieses Textes im Bild sind, um eine genaue Bildgenerierung auf der Serverseite zu erleichtern. Zu diesem Zeitpunkt kann die ImageFontwidth () -Kombination verwendet werden:

 $font = 2;
$text = "HelloWorld";
$width = imagefontwidth($font) * strlen($text);
// Kann zum Einrichten verwendet werden canvas Oder Parameterüberprüfung

Diese Art der Anwendung ist in Systemen wie Bildsignaturgenerierung und Kurzverbindungsbildgenerierung sehr häufig.

Zusammenfassen

In der tatsächlichen Entwicklung führt das Ignorieren der Rolle der Schriftnummer und der Bedeutung von ImageFontwidth () häufig zu Problemen wie dem Aussetzen der Textanzeigeposition und des verwirrenden Layouts. Das Verständnis des integrierten Schriftarts von PHP ist ein wichtiger Schritt bei der Beherrschung der GD-Bildverarbeitung. Indem wir die Schriftbreite genau berechnen, können wir nicht nur den Text schöner anzeigen, sondern auch ein intelligenteres Bildgenerierungssystem erstellen.

Durch die Beherrschung dieser Grundlagen werden Ihre Fähigkeiten zur Verarbeitung von PHP -Bildverarbeitungen ein neues Niveau benötigen.