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 는 포인트 수입니다 (배열 요소의 수가 아니라 좌표 쌍 수).
$ Color 는 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가 올바른 정수인지 여부 (계산이 부동 소수점 번호 인 경우 정수로 캐스트해야합니다).
$ color가 올바르게 할당되었는지 여부
홀수 요소와 같은 $ 포인트 배열 데이터가 올바르지 않거나 좌표 데이터가 문자열 (예 : "50px" ) 인 경우 즉시 찾아서 수정할 수 있습니다.
NUM_POINTS 매개 변수는 정수 여야합니다. 분할에 의해 얻은 소수점을 사용하는 경우 (int) 로 변형을 강제로해야합니다.
$ 포인트 배열의 총 요소 수가 짝수인지 확인하십시오.
Color Resource $ Color가 올바르게 할당되었는지 확인하십시오.
공식적인 환경에서 var_dump ()를 출력하지 마십시오. 대신 로그를 사용할 수 있습니다.