PHPグラフィックス処理中、 ImageOpenPolygon()は、開いたポリゴン(オープンポリゴン)を描画するために使用される関数です。ただし、パラメーターを渡すと、グラフを正しく描画することも、コードが正しく実行されない場合もあります。問題を迅速に見つけるために、 var_dump()を使用して、 imageopenpolygon()の入力パラメーターが正しいかどうかを確認することができます。
まず、 ImageOpenPolygon()の基本的な定義を見てみましょう。
bool imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
)
$ imageは、 ImageCreate()またはImageCreateTrueColor()によって作成された画像リソースです。
$ポイントは、[x0、y0、x1、y1、...、xn、yn]の形式のポイントの配列です。
$ num_pointsはポイント数です(配列要素の数ではなく、座標ペアの数)。
$色は、ImageColorAllocate()によって返される色識別子です。
一般的なエラーは次のとおりです。
$ポイントアレイの長さは偶数ではありません。
$ num_points計算エラー。
$ポイントの値は整数ではありません。
var_dump()は、変数のタイプと値を明確に表示できるため、複雑な配列またはリソースタイプのデータのデバッグに最適です。
ImageOpenPolygon()を呼び出す前に、次のような合格パラメーターを確認できます。
<?php
// 空白の画像を作成します
$image = imagecreatetruecolor(200, 200);
// 色を割り当てます
$color = imagecolorallocate($image, 255, 0, 0);
// ポイント配列を定義します
$points = [
50, 50,
150, 50,
150, 150,
50, 150
];
$num_points = count($points) / 2;
// 使用 var_dump パラメーターを確認します
var_dump($points);
var_dump($num_points);
var_dump($color);
// 開いたポリゴンを描いてみてください
if (!imageopenpolygon($image, $points, $num_points, $color)) {
echo "描画は失敗しました,入力パラメーターを確認してください。";
} else {
// ブラウザに写真を出力します
header('Content-Type: image/png');
imagepng($image);
}
// 無料のメモリ
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)
このような出力を使用すると、すぐに確認できます。
$ポイントが数値ペアであり、正しく配置されているかどうか。
$ num_pointsが正しい整数であるかどうか(計算が浮動小数点数である場合、整数にキャストする必要があることに注意してください)。
$色が正しく割り当てられているかどうか。
奇数の要素など、 $ポイント配列データが正しくない場合、または座標データが文字列( 「50px」など)である場合、すぐにそれを発見して修正できます。
num_pointsパラメーターは整数である必要があります。分割によって得られた小数が使用されている場合、 (int)での変換を強制することを忘れないでください。
$ポイントアレイの要素の総数が均等であることを確認してください。
カラーリソース$の色が正しく割り当てられていることを確認してください。
正式な環境でvar_dump()を出力しないでください。代わりにログを使用できます。たとえば、: