Wie verwendet ich die ImageOpenPolygon -Funktion von PHP, um eine Lösung (Mask) zum Erntebildgehalt in Polygonbereichen zu implementieren?
Während der Bildverarbeitung ist die Notwendigkeit, bestimmte Bereiche zu erregen, sehr häufig. Wir können in vielerlei Hinsicht ein Bild zuschneiden. Eine der gängigen Methoden besteht darin, die ImageOpenPolygon -Funktion in PHP zu verwenden, um die Ernte des Polygonbereichs durchzuführen. Durch diese Funktion können wir einen Polygonbereich genau angeben und den Inhalt dieses Bereichs aus dem Bild aufnehmen. Als nächstes werden wir diskutieren, wie die Image OpenPolygon -Funktion verwendet und andere Funktionen kombiniert werden, um den Anbaus Effekt des Bildes zu erreichen.
Die Grundidee des Polygongebiets, ist:
Definieren Sie den Polygonbereich : Definiert den Ausschnittbereich, indem jeder Scheitelpunkt eines Polygons angibt.
ImageOpenPolygon -Funktion anwenden : Verwenden Sie die ImageOpenPolygon -Funktion, um dieses Polygon auf dem Bild zu zeichnen.
Pflanzenbilder : Inhalt in Polygonbereichen durch Imagecrop oder andere Anbausmethoden extrahieren.
Hier sind die Schritte zur Implementierung dieser Lösung.
Zunächst müssen wir ein Bild laden, das unter Verwendung von PHPs ImagecreateFromjpeg , ImagecreateFrommpng oder anderen verwandten Funktionen geladen werden kann.
$image = imagecreatefromjpeg('your_image.jpg'); // Laden Sie Bilddateien
Vor dem Zuschneiden müssen wir eine Polygonscheitelpunkte definieren, die die Form und Größe des beschnittenen Bereichs bestimmen. Ein Scheitelpunkt sollte ein Array sein, und jedes Element des Arrays ist die Koordinaten eines Scheitelpunkts.
$vertices = [
[100, 100],
[200, 100],
[200, 200],
[100, 200]
];
Dieser Code definiert vier Scheitelpunkte eines Rechtecks ( 100.100 , 200.100 , 200.200 , 100.200 ), um einen Rechteckbereich darzustellen.
Um die Funktion OpenPolygon zu verwenden, um den Bildinhalt zu erregen, müssen wir zunächst eine transparente Bildmaske mit der gleichen Größe wie das Originalbild erstellen.
$mask = imagecreatetruecolor(imagesx($image), imagesy($image));
$transparent = imagecolorallocatealpha($mask, 0, 0, 0, 127); // Erstellen Sie einen transparenten Hintergrund
imagefill($mask, 0, 0, $transparent);
Mit der ImageOpenPolygon -Funktion können wir ein Polygon auf der Maske zeichnen. Hier geben wir den Scheitelpunkt und die Randfarbe des Polygons an.
$polygonColor = imagecolorallocate($mask, 255, 255, 255); // Weißer Grenze
imagefilledpolygon($mask, array_merge(...$vertices), count($vertices), $polygonColor); // Füllpolygone zeichnen
In diesem Schritt verwenden wir die image -fähige Polygonfunktion, um ein weißes Polygon zu zeichnen und ihre Innenseiten zu füllen.
Nachdem wir eine Polygonmaske haben, können wir sie zum Anbau auf das Originalbild anwenden. Wir wenden die Maske auf das Bild an, so dass nur der Inhalt innerhalb des Polygonbereichs angezeigt wird.
imagecopymerge($image, $mask, 0, 0, 0, 0, imagesx($image), imagesy($image), 100);
Schließlich geben Sie das verkaufte Bild aus. Sie können ImageJpeg , ImagePng und andere Funktionen verwenden, um Bilder auszugeben oder zu speichern.
header('Content-Type: image/jpeg');
imagejpeg($image); // Ausgabebild
imagedestroy($image); // Bildressourcen freigeben
imagedestroy($mask); // Maskenressourcen freigeben
<?php
$image = imagecreatefromjpeg('your_image.jpg'); // Laden Sie Bilddateien
// Definieren Sie Polygonscheitelpunkte
$vertices = [
[100, 100],
[200, 100],
[200, 200],
[100, 200]
];
// Erstellen Sie eine transparente Maske
$mask = imagecreatetruecolor(imagesx($image), imagesy($image));
$transparent = imagecolorallocatealpha($mask, 0, 0, 0, 127);
imagefill($mask, 0, 0, $transparent);
// Polygone zeichnen
$polygonColor = imagecolorallocate($mask, 255, 255, 255);
imagefilledpolygon($mask, array_merge(...$vertices), count($vertices), $polygonColor);
// Erntebilder mit Maske
imagecopymerge($image, $mask, 0, 0, 0, 0, imagesx($image), imagesy($image), 100);
// Ausgabebild
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
imagedestroy($mask);
?>
In den obigen Schritten können wir die ImageOpenPolygon -Funktion von PHP verwenden, um das Ausschneiden von Polygonregionen zu realisieren. Diese Methode ist sehr flexibel und kann verwendet werden, um den komplexen Schnittanforderungen zu bewältigen, und eignet sich zum Schneiden in verschiedenen Formen. Durch rationales Einstellen der Eckpunkte des Polygons können Sie jeden Teil des Bildes genau extrahieren.