Im PHP ist ImagetfText () eine sehr praktische Funktion, um einen tTF -basierten Text (TTF) auf einem Bild hinzuzufügen. Durch diese Funktion können Sie den Stil, die Größe, die Farbe, die Position und sogar den Rotationswinkel des Textes genau steuern. Heute konzentrieren wir uns auf die Textrotationsfunktion in der ImagettFtext -Funktion und liefern einige Lösungen für gemeinsame Probleme.
Die grundlegende Syntax der Funktion von Imagetftext () lautet wie folgt:
<span><span><span class="hljs-title function_ invoke__">imagettftext</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$size</span></span><span>, </span><span><span class="hljs-variable">$angle</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$color</span></span><span>, </span><span><span class="hljs-variable">$fontfile</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
</span></span>
$ Bild : Die Bildressource zum Hinzufügen von Text.
$ Größe : Die Schriftgröße des Textes.
$ Angle : Der Winkel der Textdrehung, die Einheit beträgt Grad (positive Zahlen repräsentieren gegen den Uhrzeigersinn und negative Zahlen im Uhrzeigersinn).
$ x , $ y : Die Startpositionskoordinate des Textes (untere linke Ecke).
$ color : Die Farbe des Textes, in der Regel eine von ImageColOralCode () erstellte Farbressource.
$ fontfile : Der Pfad zur TrueType -Schriftart.
$ text : Der zu angezeigte Textinhalt.
Eines der Kernmerkmale der Funktion ImageettFtext () ist die Textrotationsfunktion, die speziell über den $ Winkelparameter implementiert wird. Durch Anpassen des Wertes dieses Parameters können wir den Drehwinkel des Textes steuern. Die Drehwinkeleinheit beträgt Grad, ein positiver Wert zeigt gegen den Uhrzeigersinn an, und ein negativer Wert zeigt im Uhrzeigersinn an.
Wenn wir beispielsweise den Text um 45 Grad im Uhrzeigersinn drehen möchten, können wir ihn so nennen:
<span><span><span class="hljs-title function_ invoke__">imagettftext</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, -</span><span><span class="hljs-number">45</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-variable">$color</span></span><span>, </span><span><span class="hljs-variable">$fontfile</span></span><span>, </span><span><span class="hljs-string">"Hello, World!"</span></span><span>);
</span></span>
Diese Codezeile wird die "Hallo, Welt!" Text in Schrift 20, 45 Grad im Uhrzeigersinn und zeichnen Sie es mit Koordinaten auf das Bild (100, 150).
Beim Drehen von Text können Sie Probleme mit der Berechnung der Textposition treffen. Da sich das Begrenzungsfeld des Textes nach dem Drehen ebenfalls ändert, sollte beachtet werden, dass der gedrehte Text nicht immer auf der ursprünglichen Position basiert.
Eine gemeinsame Lösung besteht darin, die Funktion imagettFbBox () zu verwenden, um das Begrenzungsfeld des gedrehten Textes zu erhalten. Diese Funktion gibt die vier Eckkoordinaten des Textes zurück. Wenn Sie diese Informationen kombinieren, können Sie die richtige Textposition berechnen.
<span><span><span class="hljs-variable">$bbox</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagettfbbox</span></span><span>(</span><span><span class="hljs-number">20</span></span><span>, -</span><span><span class="hljs-number">45</span></span><span>, </span><span><span class="hljs-variable">$fontfile</span></span><span>, </span><span><span class="hljs-string">"Hello, World!"</span></span><span>);
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">100</span></span><span> - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; </span><span><span class="hljs-comment">// Passen Sie die Startposition entsprechend dem Begrenzungsfeld an</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">150</span></span><span> - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">imagettftext</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, -</span><span><span class="hljs-number">45</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$color</span></span><span>, </span><span><span class="hljs-variable">$fontfile</span></span><span>, </span><span><span class="hljs-string">"Hello, World!"</span></span><span>);
</span></span>
Bei der Durchführung von Textdrehungen können Textversetzprobleme auftreten. Dies liegt normalerweise daran, dass sich der gedrehte Text ändert. Die Lösung besteht darin, die Funktion von ImagettFbBox () zu verwenden, um die gedrehte Textgrenze zu berechnen und dann die Koordinaten des Textes entsprechend den tatsächlichen Anforderungen anzupassen.
Wenn Sie demselben Bild mehrere gedrehte Text hinzufügen, kann eine Textüberlappung auftreten. Die Lösung besteht darin, die Koordinaten von $ x und $ y jedes Text manuell anzupassen oder mit einer Schleife mehrere Texte zu generieren und verschiedene Startkoordinaten für jeden Text anzugeben.
Manchmal kann der gedrehte Text verschwommen oder verzerrt erscheinen, insbesondere bei kleineren Schriftgrößen. Dieses Problem hängt normalerweise mit der Auflösung des Bildes zusammen. Um dieses Problem zu lösen, können Sie versuchen, die Auflösung des Bildes (d. H. Die Breite und Höhe des Bildes zu erhöhen) zu erhöhen und dann wieder auf die Zielgröße zu skalieren.
Stellen Sie sicher, dass der Drehwinkel korrekt ist, insbesondere bei Verwendung negativer Werte. Da in PHP der Rotationswinkel der Imagettftext () -Funktion gegen den Uhrzeigersinn und negativ im Uhrzeigersinn ist. Wenn Sie auf eine Situation stoßen, in der die Drehrichtung entgegengesetzt ist, können Sie versuchen, das Zeichen des Winkels anzupassen.
Die Textrotationsfunktion in der Funktion ImageettFtext () ist ein sehr leistungsstarkes Tool, mit dem Entwicklern in den Bildern flexibel gedrehte Text hinzugefügt werden können. Durch rational unter Verwendung des Drehwinkels und der Kombination von Imagettfbbox () , um das Begrenzungsfeld zu berechnen, treten Probleme wie Positionsabweichung und Überlappung während der Drehung effektiv auf. Mit diesen gemäßigten Fähigkeiten können Sie Bildvorgänge mit gedrehtem Text leichter behandeln.