Aktueller Standort: Startseite> Neueste Artikel> Bildgepolygon () + ImageAntialias (): Glattes Füllungspolygon zeichnen

Bildgepolygon () + ImageAntialias (): Glattes Füllungspolygon zeichnen

M66 2025-05-28

Bei der Verwendung von PHP für die Bildverarbeitung bietet die GD -Bibliothek eine Fülle von Funktionen für das Zeichnen von Operationen. Standardmäßig erscheinen Kanten gezackt, wenn wir ein Diagramm zeichnen, insbesondere beim Zeichnen von Schrägstrichen oder Polygonen. Um einen reibungsloseren grafischen Effekt zu erzielen, kann die Anti-Alias-Funktion mithilfe der Funktion "ImageAntialias () aktiviert werden. In diesem Artikel wird detailliert erläutert, wie die Funktion "ImageAntialias () mit der imageFilledPolygon () -Funktion verwendet wird, um ein glattes Kantenfüllpolygon zu zeichnen.

Funktion Einführung

  • Imagesantialias (Ressource $ Image, Bool $ aktiviert) : Aktivieren oder deaktivieren Sie die Anti-Aliasing-Funktion bestimmter Bildressourcen.

  • ImageFilledPolygon (Ressource $ Image, Array $ Punkte, int $ num_points, int $ color) : Zeichnen Sie ein gefülltes Polygon mit der angegebenen Farbe.

Beispiel: Zeichnen Sie ein reibungsloses Pentagon

Hier finden Sie ein vollständiges Beispiel dafür, wie Sie ein gefülltes Pentagonal-Bild mit Anti-Aliasing-Effekt erstellen und es dem PNG-Format ausgeben.

 <?php
// Erstellen Sie eine Leinwand
$width = 300;
$height = 300;
$image = imagecreatetruecolor($width, $height);

// Setzen Sie die Hintergrundfarbe auf Weiß
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// Anti-Aliasing ermöglichen
imageantialias($image, true);

// Farben zuweisen
$blue = imagecolorallocate($image, 0, 102, 204);

// Punkte, die Pentagone definieren(Oder gegen den Uhrzeigersinn im Uhrzeigersinn oder gegen den Uhrzeigersinn)
$points = [
    150, 50,   // Scheitel1
    250, 120,  // Scheitel2
    210, 230,  // Scheitel3
    90, 230,   // Scheitel4
    50, 120    // Scheitel5
];

// Zeichnen gefüllte Pentagone
imagefilledpolygon($image, $points, 5, $blue);

// Setzen Sie Headerinformationsbild -Ausgabebild
header('Content-Type: image/png');
imagepng($image);

// Zerstöre Bildressourcen
imagedestroy($image);
?>

Speichern Sie den obigen Code als polygon.php und besuchen Sie dann einen Browser wie https://m66.net/polygon.php , um das gezeichnete Smooth Pentagon -Bild anzuzeigen.

Dinge zu beachten

  1. Der Anti-Aliasing-Effekt wirkt sich nur aus, wenn das erstellte Bild ein echtes Farbbild ist (erzeugt von ImagecrreatTueColor () ).

  2. Wenn Sie ein von Imagecrate () erstellter Palettenbild verwenden, wird sich Imagesantialias () nicht wirksam.

  3. Die Scheitelpunkte von Polygonen müssen ordnungsgemäß verbunden sein, normalerweise im Uhrzeigersinn oder gegen den Uhrzeigersinn angeordnet, da sonst die Form verwirrt sein kann.

  4. Obwohl Bildendias () das Zagging verringern kann, hat es einen gewissen Einfluss auf die Leistung. Wenn Sie eine große Anzahl komplexer Grafiken zeichnen, müssen Sie Leistung und Wirkung abwägen.

Erweiterung: Bild in Datei speichern

Wenn Sie das Bild als Datei speichern möchten, anstatt es direkt auszugeben, ändern Sie einfach ImagePng ($ Image) in:

 imagepng($image, 'smooth_polygon.png');

Zu diesem Zeitpunkt wird das Bild im aktuellen Verzeichnis in der Datei SUFF_POLYGON.PNG gespeichert, auf die Sie beispielsweise https://m66.net/smooth_polygon.png zugreifen können.

Zusammenfassen

Durch die Kombination von ImageAntialias () und imageFilldPolygon () können wir in PHP glattere und schönere Füllpolygongrafiken zeichnen. Diese Technologie eignet sich zum Generieren von Diagrammen, Vektorgrafiken, Logos und anderen Szenen, die Bildglattheit erfordern. Mit Hilfe der GD-Bibliothek ist PHP nicht nur für die Back-End-Verarbeitung geeignet, sondern auch grundlegende Bildzeichnungsaufgaben.