Bei der Bildverarbeitung ist das Hinzufügen von Schatteneffekten zu polygonalen Grafiken eine übliche Voraussetzung. PHP bietet eine leistungsstarke Bibliothek von Grafikverarbeitungsfunktionen, in der die Funktion imageOpenpolygon () zum Zeichnen von Polygonen verwendet wird. Mit einigen einfachen Tricks können wir diesen polygonalen Figuren Schatteneffekte hinzufügen, um die dreidimensionale Figur zu erhöhen.
In PHP wird die Funktion imageOpenpolygon () verwendet, um ein Polygon zu erstellen. Mit dieser Funktion können Sie die Eckpunkte eines Polygons definieren und auf eine Bildressource zeichnen. Die grundlegende Syntax ist wie folgt:
imageopenpolygon($image, $points, $num_points, $color);
$ Bild : Bildressource.
$ Punkte : Ein Array, das alle Scheitelpunktkoordinaten eines Polygons enthält.
$ num_points : Die Anzahl der Scheitelpunkte des Polygons.
$ Farbe : Die Farbe des Polygons.
Mit dieser Funktion können Polygone verschiedener Formen gezogen werden, und um diesen Polygonen einen Schatteneffekt zu verleihen, benötigen wir eine zusätzliche Verarbeitung.
Erstellen einer Bildressource : Erstens müssen wir eine Bildressource erstellen.
Zeichnen Sie Polygone : Verwenden Sie ImageOpenpolygon (), um Polygone zu zeichnen.
Schatten zeichnen : macht den Schatten leicht versetzt und füllt ihn mit einer dunklen Farbe, damit er wie ein Spiegelbild der hellen Quelle aussieht.
Schichten zusammenführen : Schatten und polygonale Grafiken für visuelle Effekte verschmelzen.
Hier ist ein Code -Beispiel, der diesen Prozess implementiert:
<?php
// Bildressourcen erstellen
$image = imagecreatetruecolor(400, 400);
// Farben zuweisen
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$shadowColor = imagecolorallocate($image, 100, 100, 100); // Schattenfarbe
// Hintergrundfarbe füllen
imagefill($image, 0, 0, $white);
// Definieren Sie Polygonscheitelpunkte
$points = [
100, 100, // Scheitel1
200, 50, // Scheitel2
300, 150, // Scheitel3
250, 250, // Scheitel4
150, 200 // Scheitel5
];
// Schatten zeichnen(Durch eine geringe Entfernung versetzt)
$shadowOffsetX = 10;
$shadowOffsetY = 10;
$shadowPoints = [];
foreach ($points as $key => $value) {
if ($key % 2 == 0) {
$shadowPoints[] = $value + $shadowOffsetX; // x Offset koordinieren
} else {
$shadowPoints[] = $value + $shadowOffsetY; // y Offset koordinieren
}
}
// Schatten zeichnen
imageopenpolygon($image, $shadowPoints, count($shadowPoints) / 2, $shadowColor);
// Polygone zeichnen
imageopenpolygon($image, $points, count($points) / 2, $black);
// Ausgabe Bild zum Browser
header("Content-Type: image/png");
imagepng($image);
// Zerstöre Bildressourcen
imagedestroy($image);
?>
Erstellen Sie eine Bildressource : Wir haben eine 400x400 -Bildressource mit ImagecrreatTueColor () und zugewiesenen Farben (weiße, schwarze und Schattenfarben) erstellt.
Definieren von Polygonscheitelpunkten : Wir definieren ein Fünf-Punkte-Polygon mit Scheitelpunktkoordinaten, die im $ Points- Array gespeichert sind.
Zeichnen des Schattens : Indem wir jede Scheitelpunktkoordinate des Polygons leicht ausgleichen, erhalten wir die Scheitelpunktkoordinaten des Schattens. Der Shadow -Offset wird von $ ShadowOffsetX und $ ShadowOffsety gesteuert.
Zeichnen Sie Polygone : Zeichnen Sie Schatten und Polygone getrennt durch die ImageOpenpolygon () -Funktion, und die Schatten verschieben sich leicht, damit sie stereoskopisch aussehen.
Ausgabebild : Schließlich geben wir das generierte Bild über die Funktion imagePng () aus.