ImageFontwidth () ist eine relativ grundlegende, aber sehr praktische Funktion, wenn die GD -Bibliothek von PHP für die Bildverarbeitung verwendet wird. Es wird normalerweise mit Funktionen wie Imagestring () verwendet, um das Textlayout für Bilder genau zu steuern. Das Verständnis des Rückgabewerts von ImageFontwidth () hilft uns, die Breite des Textes genauer bei dynamischer Erzeugung von Bildern zu berechnen und das Problem des Textes zu vermeiden, das die Grenze oder die Typografie -Verwirrung überschreitet.
ImageFontwidth () ist eine Funktion in der PHP -GD -Bibliothek, die einen Parameter annimmt - die Schriftgröße (oder eine Schriftbezeichner), die die horizontale Pixelbreite jedes Zeichens in der Schriftart zurückgibt. Der Rückgabewert dieser Funktion ist eine Ganzzahl, die die Breite (in Pixeln) eines beliebigen Zeichens in der Schrift darstellt.
$width = imagefontwidth(5);
echo $width; // Eine Schriftnummer ausgeben 5 Charakterbreite
Die in ImageFontwidth () verwendeten Parameter sind nicht willkürlich, sondern eine Reihe von vordefinierten Schriftarten, die von PHP bereitgestellt werden. Es handelt sich normalerweise um Ganzzahlen von 1 bis 5, was den integrierten Schriftarten mit fester Breite entspricht:
1 : Minimale Schrift, schmale Breite
2 : etwas größer
3 : mittelgroße Größe
4 : etwas größer
5 : die größte eingebaute Schriftart
Wenn Sie beispielsweise die Schriftkennung 1 verwenden, kann Bildfontwidth (1) zurückgeben, was bedeutet, dass jedes Zeichen 5 Pixel breit ist. Wenn es sich um die Schriftkennung 5 handelt, kann es 9 zurückgeben, was angibt, dass jedes Zeichen 9 Pixel breit einnimmt.
Der Rückgabewert ist eine Ganzzahl, die die Pixelbreite darstellt, die vom Charakter in horizontaler Richtung besetzt ist. Das heißt, wenn Sie beispielsweise eine Zeichenfolge auf einem Bild zeichnen möchten:
$text = "Hello, World!";
Anschließend können Sie die Gesamtbreite der Zeichenfolge folgendermaßen berechnen:
$font = 5;
$width = imagefontwidth($font) * strlen($text);
Diese Breite kann Ihnen helfen:
Mitte-Align-Text : Sie können die horizontale Startkoordinate des Textes erhalten, indem Sie die Textbreite subtrahieren, indem Sie ihn durch zwei Teilen teilen.
Stellen Sie fest, ob der Text Grenzen überfließen wird : Sie können beurteilen, ob die Verkürzung oder ein Zeilenverstärkungstext auf der Bildbreite basieren muss.
Genauige Positionierung implementieren : Dieser Wert ist für Bildlayouts mit hohen Pixel -Level -Anforderungen sehr kritisch.
Angenommen, Sie müssen den Text auf einem Bild mit einer Breite von 200 Pixel zentrieren:
$text = "Hello";
$font = 3;
$image = imagecreate(200, 50);
$bg = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
$text_width = imagefontwidth($font) * strlen($text);
$x = (200 - $text_width) / 2;
$y = 20;
imagestring($image, $font, $x, $y, $text, $text_color);
imagepng($image, 'output.png');
imagedestroy($image);
In diesem Beispiel verwenden wir ImageFontwidth () , um die Breite jedes Zeichens zu erhalten, und sie dann mit der Gesamtzahl der Zeichen multiplizieren, um die Pixelbreite des gesamten Textes zu berechnen und damit die zentrierte Anzeige zu erkennen.
ImageFontwidth () funktioniert nur mit integrierten Schriftarten. Für die von ImagettFText () verwendete TrueType -Schrift muss die Breite berechnet werden mit ImagettFBBox () .
Der Rückgabewert wird von der Schriftnummer beeinflusst, die keine benutzerdefinierten Schriftarten selbst unterstützt.