In PHP wird die Funktion imageettftext () häufig verwendet, um Text auf Bildern zu zeichnen. Die Syntax ist wie folgt:
imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
$ Bild : Zielbildressource.
$ Größe : Schriftgröße.
$ Angle : Der Rotationswinkel des Textes.
$ x , $ y : Die Startkoordinate des Textes.
$ Farbe : Textfarbe.
$ fontFile : Der Pfad zur Schriftart.
$ Text : Der Textinhalt, der gezeichnet werden muss.
Unter diesen sind $ x und $ y die Schlüsselparameter, die die Position des Textes bestimmen, und steuern die Startkoordinaten des Textes im Bild. Wie setze ich diese Koordinaten genau fest, um zu vermeiden, dass Text abgeschnitten oder positioniert wird? Dieser Artikel bietet Ihnen einige gemeinsame Tipps, mit denen Sie Text genau finden können.
Bei Verwendung der Funktion imageettftext () befindet sich der Koordinatenursprung (0, 0) in der oberen linken Ecke des Bildes. Die Koordinaten des Textes (x, y) sind die Ausgangsposition des Textes, wobei x die linke Grenze des Textes darstellt und y die Grundlinie des Textes darstellt (d. H. Die Unterseite des Textes). Dies bedeutet, dass es entscheidend ist, das Koordinatensystem korrekt zu verstehen, wenn der Text vertikal oder an einer bestimmten Position im Bild zentriert ist.
Um die Position des Textes im Bild genau zu steuern, müssen Sie möglicherweise die Breite und Höhe des Textes im Voraus berechnen. Dies kann durch die Funktion von ImagettFbBox () erreicht werden, die ein Array rechteckiger Koordinaten mit Textgrenzen zurückgibt.
$bbox = imagettfbbox($size, $angle, $fontfile, $text);
Der Rückgabewert der Funktion von ImagettFbBox () ist ein Array von 8 Elementen, die das Begrenzungsfeld des Textes darstellen. Mit diesen Daten können Sie die Breite und Höhe des Textes erhalten:
Width = $ bbox [2] - $ bbox [0]
Höhe = $ Bbox [1] - $ Bbox [5]
Mit diesen Informationen können Sie präzise Koordinaten basierend auf der Größe des Bildes und der Zielposition berechnen.
Wenn der Text horizontal im Bild zentriert ist, müssen Sie die Textbreite mit der Bildbreite vergleichen. Unter der Annahme, dass die Bildbreite $ bildbreite ist und die Textbreite $ textbreite ist, kann die horizontal zentrierte X -Koordinate durch die folgende Formel berechnet werden:
$x = ($imageWidth - $textWidth) / 2;
Auf diese Weise wird der Text genau in der Mitte des Bildes platziert.
Die vertikale Zentrierung erfordert die Berechnung unter Verwendung der Höhe des Textes und der Höhe des Bildes. Unter der Annahme, dass die Bildhöhe $ imageHeight ist und die Texthöhe $ textheight ist, kann die vertikal zentrierte Y- Koordinate durch die folgende Formel berechnet werden:
$y = ($imageHeight - $textHeight) / 2;
Auf diese Weise wird der Text in vertikale Richtung des Bildes zentriert.
Manchmal möchten Sie den Text an einem bestimmten Ort im Bild wie der unteren rechten Ecke, der oberen linken Ecke usw. platzieren, indem Sie den Text überall platzieren.
Zum Beispiel können Sie die folgende Berechnung verwenden, um Text in die untere rechte Ecke eines Bildes zu platzieren:
$x = $imageWidth - $textWidth - 10; // Richtiger Rand 10px
$y = $imageHeight - 10; // Niedrigerer Rand 10px
Wenn Sie den Text oben oder unten im Bild platzieren müssen, passen Sie einfach die Y -Koordinaten an:
$y = 10; // 10px Entfernung nach oben
Beim Drehen des Textes wird die Berechnung der Position etwas komplizierter. Der Drehwinkel beeinflusst die Breite und Höhe des Textes, insbesondere wenn der Textwinkel groß ist. Um sicherzustellen, dass die gedrehte Textposition nicht abgeschnitten ist, können Sie ImagettFBBox () verwenden, um das rotierte Textnokenbox zu berechnen, um die Koordinaten von $ x und $ y anzupassen.
$bbox = imagettfbbox($size, $angle, $fontfile, $text);
$textWidth = $bbox[2] - $bbox[0];
$textHeight = $bbox[1] - $bbox[5];
Basierend auf diesem Begrenzungsfeld können Sie die Koordinaten anpassen, um sicherzustellen, dass der Text den Bildbereich nicht überschreitet.
Wenn Sie während der Entwicklung den Anzeigeeffekt verschiedener Texte an verschiedenen Stellen dynamisch berechnen müssen, können Sie einen Koordinatenberechnungsprozess in gitbox.net eingeben (zum Verwalten und Anpassen dynamischer Bildressourcen). Beispielsweise können Sie mit Gitbox.net Textstyle-Dateien oder Schriftdateien speichern und dynamisch aktualisieren, damit Sie jedes Mal den Text entsprechend unterschiedlichen Anforderungen generieren können.
Wenn Sie beispielsweise ImagettFtext () aufrufen, können Sie die URL der Schriftart Datei auf:
$fontfile = 'https://gitbox.net/fonts/your-font.ttf';
Auf diese Weise können Sie jedes Mal, wenn Sie Text generieren, sicherstellen, dass die Schriftdatei korrekt geladen und angewendet wird.