Im vorigen Artikel haben wir uns darauf konzentriert, Bilder mit PHP zu laden und zu bearbeiten. Wir haben gelernt, ein Bild zu drehen, zu skalieren, zu skalieren oder zu spiegeln. Wir haben auch verschiedene Filter und die Faltungsmatrix kennengelernt. Diese Tutorials behandelten auch einige praktische Anwendungen der GD-Bibliothek, z. B. das Ändern der Größe aller Bilder in einem Verzeichnis oder das Hinzufügen von Wasserzeichen auf mehreren Bildern.
Neben der Verwendung von GD zum Bearbeiten normaler Bilder können wir auch eigene Bilder erstellen. Mit verschiedenen Funktionen in der Bibliothek können Sie Grundformen wie Ellipsen, Kreise, Rechtecke, Polygone und einfache Linien zeichnen. Mit etwas Mathematik können diese Formen schöne Muster erzeugen. Es stehen auch Funktionen zum Zeichnen von Text auf dem gerenderten Bild zur Verfügung, was viele Möglichkeiten eröffnet.
In diesem Lernprogramm erfahren Sie, wie Sie grundlegende Formen in PHP zeichnen und Text mit Ihrer bevorzugten Schriftart darstellen.
In diesem Abschnitt lernen wir die Grundformen kennen und behandeln später Linienstärke, Pinsel und Linienstile.
Sie können eine einfache gerade Linie zwischen zwei gegebenen Punkten mit der Bildlinie ($ image, $ x1, $ y1, $ x2, $ y2, $ color)
Funktion. Das $ image
Parameter ist eine Bildressource, die zuvor mit Funktionen wie erstellt wurde imagecreatetruecolor ()
oder imagecreatefromjpeg ()
. Wir werden verwenden imagecreatetruecolor ()
in diesem Tutorial, um neue Bilder von Grund auf zu erstellen. Die Funktion zeichnet eine horizontale Linie, wenn $ y1
entspricht $ y2
. Ebenso wird eine vertikale Linie gezeichnet, wenn $ x1
entspricht $ x2
.
Die Funktion imagearc ($ image, $ cx, $ cy, $ width, $ height, $ start, $ end, $ color)
kann kreisbogen mit zeichnen $ cx
und $ cy
als sein Zentrum. Das $ width
und $ Höhe
Parameter bestimmen die Größe des Bogens auf verschiedenen Achsen. Das $ start
und $ end
Parameter geben den Anfangs- und Endwinkel des Bogens in Grad an. Wenn Sie vollständige Bögen von 0 bis 360 Grad zeichnen möchten, können Sie die Alternative verwenden imageellipse ($ image, $ cx, $ cy, $ width, $ height, $ color)
Funktion.
Mit können Sie Rechtecke über ein Bild zeichnen Bildwinkel ($ image, $ x1, $ y1, $ x2, $ y2, $ color)
Funktion. Das $ x1
und $ y1
Werte bestimmen die linke obere Ecke des Rechtecks. Das $ x2
und $ y2
Werte bestimmen die rechte untere Ecke. Es gibt auch eine Bildpolygon ($ image, $ points, $ num_points, $ color)
Funktion, die ein Polygon mit einer beliebigen Anzahl von Seiten oder Punkten erstellen kann. Das $ Punkte
Parameter ist ein Array, in dem zwei Elemente zusammengefügt werden, um die Koordinaten eines bestimmten Punkts zu erhalten.
Eine andere Funktion namens imageopenpolygon ()
wurde zu PHP 7 hinzugefügt, das keine Linie zwischen dem ersten und dem letzten Punkt zieht.
Im folgenden Beispiel haben wir alle diese Funktionen verwendet, um eine Strichzeichnung mit einer Hütte, der Sonne und dem Boden zu erstellen.
Wichtig ist hier nur, den Wert verschiedener Koordinaten herauszufinden. Ich wollte alles relativ zur Größe des Originalbildes zeichnen, also habe ich das verwendet $ img_height
und $ img_width
Variablen zur Berechnung der Koordinaten verschiedener Punkte.
Das obige Bild weist einige Probleme auf, wie z. B. sehr dünne Linien und keine Farbgebung. Alle diese Probleme können mit Funktionen wie z Bilderhärte ()
und imagefilledrectangle ()
.
Das Bildstärke ($ image, $ thickness)
Mit dieser Funktion wird die Stärke der gerenderten Linien beim Zeichnen von Rechtecken, Polygonen, Bögen usw. festgelegt $ Dicke
bis 5 macht jede Figur mit imagerectangle ()
, imagearc ()
, imagepolygon ()
, etc. 5 Pixel dick.
Jede Zeichnungsfunktion hat auch eine gefüllte Farbversion, die diese bestimmte Figur mit einer bestimmten Farbe füllt. Zum Beispiel, imagefilledrectangle ()
füllt das gezeichnete Rechteck mit der angegebenen Farbe.
Eine sehr nützliche GD-Funktion ist Bilderpinsel ($ image, $ brush)
. Das $ Pinsel
Parameter in dieser Funktion ist nur eine weitere Bildressource, die zum Zeichnen von Linien verwendet werden kann. Sie können beispielsweise eine transparente Vektorzeichnung einer Blume als Pinsel verwenden, um Ihrem Bild schöne Blumenmuster hinzuzufügen. Der unten angegebene Code-Snippet wurde geschrieben, um das Bild einer Wolke als Pinsel zu verwenden, wenn Sie einen Punkt zeichnen. Dies fügt eine einzige Wolke in unserem Himmel hinzu.
Ich habe dieses Wolkenbild auf Pixabay gefunden und es auf eine für unser Projekt geeignete Größe herunterskaliert.
Der vollständige Code für das Hüttenbild ist unten angegeben. Wir haben einfach zwei Versionen jeder Figur hinzugefügt, eine zum Zeichnen der Kontur und die andere zum Ausfüllen der Farbe.
Dies ist das Endergebnis des obigen PHP-GD-Codes.
PHP GD bietet vier verschiedene Funktionen, mit denen Sie entweder mehrere Zeichen oder nur ein Zeichen in horizontaler oder vertikaler Richtung rendern können. Diese Funktionen sind imagechar ()
, imagecharup ()
, Imagestring ()
, und imagestringup ()
. Alle akzeptieren die gleichen sechs Parameter, daher werden wir nur die imagechar ()
Funktion hier.
Das $ font
Parameter imagechar ($ image, $ font, $ x, $ y, $ string, $ color)
Funktion ist einfach die Größe des gerenderten Textes. Es werden nur ganzzahlige Werte von 1 bis 5 akzeptiert $ string
Parameter ist der Text, den Sie rendern möchten. Wenn Sie den Zeichenfunktionen eine Zeichenfolge mit mehreren Zeichen übergeben, wird nur das erste Zeichen im Bild gerendert. Das imagecharup ()
und imagestringup ()
Funktionen werden den Text vertikal von unten nach oben darstellen.
Beim Rendern von Text sind die vier oben diskutierten Funktionen sehr begrenzt. Sie werden feststellen, dass selbst der größte Wert für die Schriftgröße für den normalen Gebrauch zu klein ist. Außerdem kann der Text nur horizontal und vertikal geschrieben werden.
Zum Glück hat GD auch eine Imagetext ($ image, $ size, $ angle, $ x, $ y, $ color, $ fontfile, $ text)
Funktion, die den Text in jeder gewünschten Schriftart darstellen kann. Das $ fontfile
Über den Parameter wird der Pfad zu der TrueType-Schriftart angegeben, die zum Anzeigen des Textes verwendet werden soll. Das $ x
und $ y
Parameter bestimmen die Startposition des gerenderten Textes.
Im folgenden Beispiel werden alle diese Funktionen verwendet, um schöne Texteffekte zu erstellen.
Wie Sie sehen, haben wir den gleichen Text mit derselben Schriftart an leicht unterschiedlichen Positionen gerendert, um Effekte wie grundlegenden Textschatten zu erzeugen. Dabei ist zu beachten, dass der von einer Textfunktion gerenderte Text den darunter liegenden Text bei Überlappung vollständig verdeckt. Hier ist das endgültige Bild, das nach dem Ausführen des obigen Codes erhalten wurde.
Das Ziel dieses Tutorials war es, Sie mit verschiedenen GD-Funktionen vertraut zu machen, um grundlegende Formen in PHP von Grund auf zu zeichnen. Mithilfe einiger mathematischer Berechnungen können Sie mit diesen Funktionen kompliziertere Formen wie reguläre Polygone, abgerundete Rechtecke usw. erstellen.
PHP GD bietet auch einige sehr nützliche Funktionen zum Rendern von Text in einem Bild. Durch die Verwendung einer schönen Schriftart wird sichergestellt, dass der gerenderte Text auf normalen Bildern, die aus verschiedenen Dateipfaden geladen werden, nicht seltsam aussieht.
Haben Sie weitere ausgefallene Texteffekte in PHP erstellt? Bitte teilen Sie uns diese in den Kommentaren mit.