Aktueller Standort: Startseite> Neueste Artikel> ImageOpenpolygon () und transparente Bildzeichnungsfähigkeiten: Wie ermöglicht man transparente Überlagerung von polygonalen Figuren?

ImageOpenpolygon () und transparente Bildzeichnungsfähigkeiten: Wie ermöglicht man transparente Überlagerung von polygonalen Figuren?

M66 2025-05-18

Im Bereich der Bildverarbeitung sind die Zeichnungsfähigkeiten transparenter Bilder sehr wichtig, insbesondere wenn Sie komplexe polygonale Grafik -Overlay -Effekte implementieren müssen. Als beliebte serverseitige Programmiersprache bietet PHP einige integrierte Bildverarbeitungsfunktionen. ImageOpenpolygon () ist eine der Funktionen, mit denen Polygone gezeichnet werden können. In diesem Artikel wird vorgestellt, wie die Funktion imageOpenpolygon () verwendet wird und wie ein transparenter Hintergrund kombiniert wird, um den transparenten Overlay -Effekt von Polygonen zu erzielen.

1. Überblick über die ImageOpenpolygon () -Funktion

In PHP wird die ImageOpenPolygon () -Funktion hauptsächlich zum Zeichnen eines geschlossenen Polygons verwendet. Es dauert eine Reihe von Punkten und verbindet sie mit geraden Linien, um ein Polygon zu bilden. Standardmäßig sind von PHP gezogene Polygone jedoch nicht transparent. Um Transparenz zu erreichen, müssen wir Bildformate verwenden, die Transparenz (z. B. PNG) unterstützen und eine zusätzliche Konfiguration durchführen.

2. Erstellen Sie transparente Bilder und formatieren Sie sie

Zunächst müssen wir ein Bild erstellen, das Transparenz unterstützt. In PHP können Sie eine echte Farb -Leinwand über die Funktion imageCrreatTueColor () erstellen und einen transparenten Hintergrund festlegen. Der Code ist wie folgt:

 <?php
// Erstellen a 500x500 Transparentes Hintergrundbild
$image = imagecreatetruecolor(500, 500);

// Schalten Sie die transparente Unterstützung ein
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);  // 127 Vollständig transparent sein
imagefill($image, 0, 0, $transparent);

// Ausgabebild
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

Im obigen Code erstellt ImagecreatTueColor () eine 500 x 500 Pixel -Leinwand, ermöglicht BilderSavealpha () transparente Kanäle für das Bild und setzt transparente Farben durch ImageColorallocatealpha () .

3. Zeichnen Sie Polygone mit ImageOpenpolygon () ()

Verwenden Sie als Nächstes die Funktion imageOpenpolygon (), um ein Polygon auf das erstellte Bild zu zeichnen. Zunächst müssen Sie die Scheitelpunktkoordinaten des Polygons definieren und mit der entsprechenden Farbe füllen. Um transparentes Overlay zu erreichen, setzen wir eine durchscheinende Farbe.

 <?php
// Definieren Sie die Scheitelpunktkoordinaten eines Polygons
$points = [
    250, 100,  // Scheitel1
    350, 200,  // Scheitel2
    300, 300,  // Scheitel3
    200, 300,  // Scheitel4
    150, 200   // Scheitel5
];

// Erstellen Sie transparente Farben
$polygonColor = imagecolorallocatealpha($image, 255, 0, 0, 64);  // Durchscheinend rot

// Polygone zeichnen
imagefilledpolygon($image, $points, 5, $polygonColor);

// Ausgabebild
imagepng($image);
imagedestroy($image);
?>

Im obigen Code wird imageFilledPolygon () ein solides Polygon gezeichnet, während imageColorallocatealpha () ein durchscheinendes Rot mit einem Transparenzwert von 64 erzeugt, wodurch der transparente Überlagerungseffekt der Abbildung erreicht wird.

4. Weitere Optimierung: Zeichnen Sie Polygone auf vorhandene Bilder

Angenommen, Sie haben ein Hintergrundbild und möchten transparente Polygone darauf zeichnen. Wir können ImagecreateFrommpng () oder eine andere Bild -Lesefunktion verwenden, um das Hintergrundbild zu laden und dann zu zeichnen. Hier ist ein Beispiel für das Laden des Hintergrundbildes und das Zeichnen transparenter Polygone:

 <?php
// Hintergrundbild laden
$background = imagecreatefrompng('background.png');

// Bildgröße erhalten
$width = imagesx($background);
$height = imagesy($background);

// Erstellen a透明画布并合并到背景图
$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);

// Überschreiten Sie das Hintergrundbild auf neues Bild zusammen
imagecopy($image, $background, 0, 0, 0, 0, $width, $height);

// 定义多边形Scheitel坐标
$points = [
    100, 100,
    200, 100,
    200, 200,
    100, 200
];

// 使用半透明的颜色Polygone zeichnen
$polygonColor = imagecolorallocatealpha($image, 0, 255, 0, 64);  // Durchscheinend grün
imagefilledpolygon($image, $points, 4, $polygonColor);

// Das endgültige Bild ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
imagedestroy($background);
?>

In diesem Code laden wir zuerst ein PNG -Hintergrundbild, erstellen ein neues transparentes Bild und kopieren dann das Hintergrundbild in das neue Bild. Als nächstes wird ein transparentes grünes Polygon gezeichnet, das auf dem Hintergrundbild überlagert wird.

5. Zusammenfassung

Mit ImageOpenpolygon () und imageFilldPolygon () können wir leicht Polygonfiguren zeichnen. Durch die Verwendung der Transparenzeinstellungen rational und kombiniert die transparente Bildtechnologie in PHP, können mehrere Overlay -Effekte erzeugt werden. Diese Tipps bieten Webentwicklern viel Flexibilität und kreativen Platz beim Erstellen von Grafiken, Animationen und sogar Benutzeroberflächen. Ich hoffe, dieser Artikel kann Ihnen helfen, die Techniken der transparenten Bildzeichnung zu beherrschen und Ihre Bildverarbeitung lebendiger und interessanter zu machen.

In diesem Prozess haben wir den URL-bezogenen Bilddateipfad verwendet. Wenn wir jedoch den Domänennamenteil im Pfad durch m66.net ersetzen müssen, ist das folgende Beispiel für das geänderte Code-Beispiel: