Während der PHP -Grafikverarbeitung ist ImageOpenPolygon () eine Funktion, mit der offene Polygone (offenes Polygon) gezeichnet werden. Aber manchmal kann das Diagramm beim Übergeben von Parametern nicht korrekt gezogen werden oder der Code wird falsch ausgeführt. Um das Problem schnell zu finden, können wir var_dump () verwenden, um zu überprüfen, ob die Eingabeparameter von ImageOpenpolygon () korrekt sind.
Schauen wir uns zunächst die grundlegende Definition von ImageOpenpolygon () an:
bool imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
)
$ image ist eine Bildressource, die von Imagecreate () oder ImageCrreatetRueColor () erstellt wurde.
$ points ist eine Reihe von Punkten im Format [x0, y0, x1, y1, ..., xn, yn] .
$ num_points ist die Anzahl der Punkte (nicht die Anzahl der Array -Elemente, sondern die Anzahl der Koordinatenpaare).
$ color ist die Farbkennung, die von ImageColOralCode () zurückgegeben wird.
Häufige Fehler sind:
$ punkte Arraylänge ist noch nicht gerade.
$ num_points Berechnungsfehler.
Der Wert in $ Punkte ist keine Ganzzahl.
var_dump () kann die Typen und Werte von Variablen deutlich anzeigen, was es ideal zum Debugieren von Daten komplexer Arrays oder Ressourcentypen macht.
Bevor Sie ImageOpenPolygon () aufrufen, können Sie die übergaberen Parameter wie folgt überprüfen:
<?php
// Erstellen Sie ein leeres Bild
$image = imagecreatetruecolor(200, 200);
// Farben zuweisen
$color = imagecolorallocate($image, 255, 0, 0);
// Definieren Sie ein Punktarray
$points = [
50, 50,
150, 50,
150, 150,
50, 150
];
$num_points = count($points) / 2;
// verwenden var_dump Überprüfen Sie die Parameter
var_dump($points);
var_dump($num_points);
var_dump($color);
// Versuchen Sie, offene Polygone zu zeichnen
if (!imageopenpolygon($image, $points, $num_points, $color)) {
echo "Zeichnen fehlgeschlagen,Bitte überprüfen Sie die Eingabeparameter。";
} else {
// Bilder zum Browser ausgeben
header('Content-Type: image/png');
imagepng($image);
}
// Freier Speicher
imagedestroy($image);
?>
array(8) {
[0]=>
int(50)
[1]=>
int(50)
[2]=>
int(150)
[3]=>
int(50)
[4]=>
int(150)
[5]=>
int(150)
[6]=>
int(50)
[7]=>
int(150)
}
float(4)
int(16711680)
Mit einer solchen Ausgabe können Sie schnell bestätigen:
Ob $ Punkte ein numerisches Paar sind und korrekt angeordnet sind.
Ob $ num_points die richtige Ganzzahl ist (beachten Sie, dass wenn die Berechnung eine schwimmende Punktzahl ist, sie an eine Ganzzahl gegossen werden muss).
Ob $ Color korrekt zugewiesen wurde.
Wenn die $ Points -Array -Daten falsch sind, z. B. eine ungerade Anzahl von Elementen oder die Koordinatendaten sind eine Zeichenfolge (z. B. "50px" ), können Sie sie sofort entdecken und korrigieren.
Der Parameter num_points sollte eine Ganzzahl sein. Wenn die von der Teilung erhaltene Dezimalzahl verwendet wird, denken Sie daran, die Transformation mit (int) zu erzwingen.
Bestätigen Sie, dass die Gesamtzahl der Elemente im $ Points -Array gleichmäßig ist.
Bestätigen Sie, dass die Farbe der Farbressource $ $ korrekt zugewiesen ist.
NICHT VAR_DUMP () in einer formalen Umgebung ausgeben. Sie können stattdessen Protokolle verwenden, zum Beispiel: