Bei der Bildverarbeitung ist die Korrespondenz zwischen Koordinaten und Pixelpunkten häufig ein verwirrendes Thema. Unterschiedliche Bibliotheken und Funktionen von Grafikzeichnungen können diese Beziehungen auf unterschiedliche Weise definieren. Heute verwenden wir die ImageOpenPolygon -Funktion in PHP, um die Beziehung zwischen Koordinateneinheiten und Pixelpunkten tief zu verstehen.
Die Koordinateneinheit bezieht sich normalerweise auf die "logischen Koordinaten" im Bild, und die Pixelpunkte sind die tatsächliche "physikalische Darstellung" des Bildes. Koordinateneinheiten werden häufig verwendet, um die Position von Grafik- oder Bildelementen zu definieren, während Pixelpunkte direkt den tatsächlichen Pixeln auf dem Anzeigebildschirm nacheinander entsprechen. Für Webentwicklung oder grafische Zeichnungsaufgaben ist es sehr wichtig zu verstehen, wie diese Koordinaten in Pixelpunkte umwandeln können.
Im PHP ist ImageOpenPolygon eine Funktion, die zum Zeichnen von Polygonen verwendet wird. Es gehört zur GD -Grafikbibliothek und kann verwendet werden, um Bilder zu erstellen und verschiedene Formen zu zeichnen. Der Parameter dieser Funktion ist ein Array, das Koordinaten enthält, die normalerweise "logische Koordinaten" im Bild sind. Das Ziel der Funktion ist es, diese logischen Koordinaten den Pixelpunkten des tatsächlichen Bildes abzubilden und damit das entsprechende Diagramm zu zeichnen.
In der ImageOpenPolygon -Funktion wird die Zuordnungsbeziehung zwischen Koordinateneinheiten und Pixelpunkten durch die Größe des Bildes bestimmt. Die GD -Bibliothek in PHP verwendet ein Koordinatensystem mit Pixeln. Hier entspricht der Wert der Koordinateneinheit der Pixelposition des Bildes. Wenn Sie beispielsweise ein Bild mit einer Bildbreite von 800px und einer Höhe von 600px haben, entspricht die obere linke Koordinate (0, 0) des Bildes der oberen linken Ecke des Bildes, und die untere rechte Eckekoordinate (800, 600) des Bildes entspricht der unteren rechten Ecke des Bildes.
Mit dieser Zuordnung wandelt die ImageOpenPolygon -Funktion benutzerdefinierte Koordinaten (normalerweise relative Koordinaten) in tatsächliche Pixelpunkte um und stellt sicher, dass das gewünschte Polygon genau im Bild gezeichnet ist.
Schauen wir uns ein einfaches Beispiel an, das zeigt, wie ein Polygon mit ImageOpenPolygon zeichnet.
<?php
// Erstellen Sie ein leeres Bild
$image = imagecreatetruecolor(800, 600);
// Hintergrundfarben setzen
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Weiß
imagefill($image, 0, 0, $backgroundColor);
// Definieren Sie die Scheitelpunktkoordinaten eines Polygons(Dies sind die Koordinateneinheiten)
$points = array(
100, 100, // Scheitel1
200, 50, // Scheitel2
300, 150, // Scheitel3
200, 250, // Scheitel4
100, 200 // Scheitel5
);
// Farbe setzen(Zum Beispiel rot)
$color = imagecolorallocate($image, 255, 0, 0);
// verwendenimageopenpolygonPolygone zeichnen
imagefilledpolygon($image, $points, count($points) / 2, $color);
// Ausgabebild
header('Content-Type: image/png');
imagepng($image);
// Ressourcen frei machen
imagedestroy($image);
?>
Erstellen Sie ein Bild: ImagecrreatTueColor (800, 600) wird verwendet, um ein Bild von 800 x 600 Pixel zu erstellen.
Hintergrundfarbe festlegen: Verwenden Sie ImageColoralClocate , um die Hintergrundfarbe für das Bild zu füllen. Hier haben wir uns für Weiß ausgewählt.
Definieren Sie Polygonscheitelpunkte: Der Wert in Array (100, 100, 200, 50, 300, 150, 200, 250, 100, 200) ist die Scheitelpunktkoordinaten des Polygons. Diese Koordinaten sind logische Koordinaten im Bild, und die Einheiten sind Pixel.
Zeichnen Sie Polygone: Mit der imageFiltempolygon -Funktion zeichnen diese Koordinaten ein rotes Füllpolygon.
Ausgabebild: Verwenden Sie ImagePng , um das Bild auszugeben und die richtigen Header -Informationen festlegen.
In praktischen Anwendungen können wir auf Situationen stoßen, in denen wir "logische Koordinaten" in Bildkoordinaten konvertieren müssen. Wenn beispielsweise die Koordinateneinheiten, die wir aus der Datenbank oder der Benutzereingabe erhalten, keine Pixel sind (beispielsweise einige Grafik -Tools verwenden Skalierungskoordinaten), müssen wir Skalierungskonvertierung durchführen. Unter der Annahme, dass die Breite des Bildes 800px beträgt und der Maximalwert des von uns verwendeten Koordinatensystems 100 beträgt, kann die Konvertierung zwischen den logischen Koordinateneinheiten und den Bildpixel durch die folgende proportionale Beziehung erreicht werden:
Bildkoordinaten = Logische Koordinaten * Bildbreite / 最大Logische Koordinaten值
Diese Methode sorgt für eine Eins-zu-Eins-Korrespondenz zwischen den logischen Koordinaten und den tatsächlichen Pixeln.
Hoffentlich hilft Ihnen dieser Artikel, die Beziehung zwischen Koordinateneinheiten und Pixelpunkten und dem Zeichnen von Polygonen mithilfe der ImageOpenPolygon -Funktion in PHP zu verstehen. Wenn Sie weitere Fragen haben, besuchen Sie bitte unsere Website!