Bei den Bildverarbeitungs- und Kennzeichnungssystemen müssen wir häufig bestimmte Bereiche im Bild kennzeichnen. Eine häufige Anforderung besteht darin, den Interessenbereich durch Zeichnen von Polygonen zu kennzeichnen. Als leistungsstarke serverseitige Skriptsprache kann PHP verwendet werden, um Bilder über die GD-Bibliothek zu verarbeiten. Die ImageOpenPolygon () -Funktion in der GD -Bibliothek bietet die Funktion des Zeichnens von Polygonen, die besonders für die Implementierung von Polygonannotation auf Bildern geeignet sind.
In diesem Artikel wird ein Beispiel verwendet, um anzuzeigen, wie die Annotation von Polygon mithilfe der Funktion ImageOpenPolygon () in PHP implementiert und einige praktische Anwendungstechniken bereitgestellt wird.
Zunächst müssen wir sicherstellen, dass die GD -Bibliothek von PHP installiert und aktiviert ist. Wenn Sie die GD -Bibliothek nicht installiert haben, können Sie sie über den folgenden Befehl installieren:
sudo apt-get install php-gd
Stellen Sie dann sicher, dass Sie GD -Erweiterungen in Ihrem PHP -Skript aktivieren:
<?php
phpinfo(); // Überprüfen Sie, ob es aktiviert istGDErweitert
?>
Als nächstes erstellen wir ein einfaches Bild und zeichnen ein Polygon unter Verwendung der ImageOpenPolygon () -Funktion.
<?php
// Erstellen Sie ein neues Bild,Hintergrund ist weiß
$image = imagecreatetruecolor(500, 500);
$white = imagecolorallocate($image, 255, 255, 255); // Weißer Hintergrund
$black = imagecolorallocate($image, 0, 0, 0); // Schwarz bemalt
// 填充Hintergrund ist weiß
imagefill($image, 0, 0, $white);
// Scheitelpunktkoordinaten von Polygonen
$polygon = [
100, 100, // Scheitel1
400, 100, // Scheitel2
400, 400, // Scheitel3
100, 400 // Scheitel4
];
// verwendenimageopenpolygonPolygone zeichnen
imageopenpolygon($image, $polygon, count($polygon) / 2, $black);
// Ausgabe Bild zum Browser
header('Content-Type: image/png');
imagepng($image);
// Kostenloser Bildspeicher
imagedestroy($image);
?>
Erstellen Sie ein Bild : Verwenden Sie zunächst die Funktion imageCrreatTueColor (), um ein Bild von 500 x 500 Pixel zu erstellen. Als nächstes verwenden wir ImageColOralCecocate (), um dem Bild Farbressourcen zuzuweisen und Linien für weiße Hintergrund bzw. Schwarz zu zeichnen.
Definieren Sie die Eckpunkte eines Polygons : Die Eckpunkte eines Polygons werden durch ein Array definiert. Das $ Polygon -Array enthält die Koordinaten von 4 Scheitelpunkten, und jede zwei Zahlen repräsentieren die X- und Y -Koordinaten eines Punktes.
Zeichnen Sie Polygone : Verwenden Sie die ImageOpenPolygon () -Funktion, um Polygone zu zeichnen. Der erste Parameter dieser Funktion ist die Bildressource, der zweite Parameter ist das Vertex -Array, der dritte Parameter ist die Anzahl der Eckpunkte (Hinweis: Das Array enthält x- und y -Koordinaten, sodass die Anzahl der Eckpunkte die Hälfte der Länge des Arrays sein sollte), und der vierte Parameter ist die Zeichnungsfarbe.
Ausgabebild : Verwenden Sie schließlich ImagePng (), um das Bild in den Browser auszugeben und den Antwortheader auf Bild/PNG so einzustellen, dass der Browser das Bild korrekt analysieren und anzeigen kann.
In praktischen Anwendungen können Sie die Form und Position des Polygons entsprechend Ihren Anforderungen einstellen. Sie können beispielsweise dynamische Polygon -Annotationen generieren, indem Sie von Benutzern eingegebene Koordinaten generieren oder Annotationen zeichnen, indem Sie Daten in der Datenbank kombinieren. Beispielsweise können Sie eine Reihe von Koordinaten aus der Datenbank abrufen und verschiedene Polygone generieren, um verschiedene Regionen zu kennzeichnen.
Darüber hinaus können Sie dem Bild weitere Elemente hinzufügen, z. B. Textkommentare, Beschriftungen verschiedener Farben usw. ImageOpenPolygon () können Sie die Bereichsbezeichnungsfunktion auf dem Bild problemlos implementieren.
Die ImageOpenPolygon () -Funktion bietet uns eine bequeme Möglichkeit, die Polygon -Zeichnung in der GD -Bibliothek von PHP zu implementieren, die für das Bildannotationssystem sehr geeignet ist. Durch flexible Verwendung dieser Funktion können Sie dem Bild benutzerdefinierte Anmerkungen hinzufügen, um reichhaltigere und genauere Bildmarkierungsfunktionen zu erzielen.