현재 위치: > 최신 기사 목록> 색상 변경을 사용하여 ImageOpenPolygon () 드로잉 프로세스가 실행되는지 확인하십시오.

색상 변경을 사용하여 ImageOpenPolygon () 드로잉 프로세스가 실행되는지 확인하십시오.

M66 2025-05-17

이미지 처리에 PHP의 GD 라이브러리를 사용하는 경우 ImageOpenPolygon ()은 개방 된 (비 포함 된) 다각형 경로를 그리는 비교적 드물지만 유용한 기능입니다. 그러나 복잡한 이미지 처리에서는 종종이 드로잉 프로세스가 성공했는지 확인해야합니다. 직관적이고 효과적인 방법은 도면이 완성되었는지 판단하는 것입니다.

이 기사는 imageOpenPolygon () 에 의해 그린 결과를 감지하기 위해 색상 변경을 사용하는 방법을 자세히 소개합니다.

ImageOpenPolygon () 이란 무엇입니까?

ImageOpenPolygon () 함수의 기본 사용은 다음과 같습니다.

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ 이미지 : imageCreatetRueColor () 또는 유사한 함수에 의해 생성 된 이미지 리소스.

  • $ 포인트 : [x0, y0, x1, y1, x2, y2, ...] 형식의 정점을 포함하는 배열.

  • $ num_points : 정점 수.

  • $ Color : 다각형 선을 그리는 데 사용되는 색상 식별자.

색상 변경으로 도면이 성공했는지 판단 해야하는 이유는 무엇입니까?

일반적으로 ImageOpenPolygon ()은 성공적인 도면을 표시하기 위해 true를 반환하지만 실제 복잡한 응용 분야에서는 다음과 같은 반환 값만으로 모든 상세 오류를 캡처하지 못할 수 있습니다.

  • 이미지 리소스가 파괴되었지만 함수는 여전히 사실을 반환합니다.

  • 지정된 색상은 이미지의 배경에서 볼 수 없습니다.

따라서 이미지의 특정 위치에서 색상 변화를 직접 감지하면 도면 효과가 더 직관적으로 확인 될 수 있습니다.

테스트 프로세스 예

1 단계 : 기본 이미지를 만들고 백그라운드를 채우십시오.

먼저 흰색 배경으로 이미지를 만듭니다.

 <?php
// 빈 이미지를 만듭니다
$image = imagecreatetruecolor(200, 200);

// 할당 흰색 배경
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
?>

2 단계 : 매개 변수를 그릴 준비를합니다

다각형의 점과 색상 정의 :

 <?php
// 다각형의 정점을 정의하십시오
$points = [
    50,  50,
    150, 50,
    100, 150
];

// 드로잉에 빨간색을 할당하십시오
$red = imagecolorallocate($image, 255, 0, 0);
?>

3 단계 : 그리기 전에 특정 지점에서 색상을 기록하십시오.

그리기 전에, 우리는 그릴 것으로 예상되는 선 세그먼트의 지점을 선택하고 현재 색상을 기록합니다.

 <?php
// 다각형 선에 가까운 지점을 선택하십시오
$x = 100;
$y = 50;

// 그리기 전에 색상을 기록하십시오
$beforeColor = imagecolorat($image, $x, $y);
?>

4 단계 : imageOpenPolygon ()을 호출하여 다각형을 그립니다

 <?php
// 열린 다각형을 그립니다
$result = imageopenpolygon($image, $points, 3, $red);
?>

5 단계 : 그리기 후 점의 색상을 기록하고 비교하십시오.

 <?php
// 그리기 후 색상을 기록하십시오
$afterColor = imagecolorat($image, $x, $y);

// 색상이 변경되는지 확인하십시오
if ($beforeColor !== $afterColor && $result) {
    echo "성공적으로 그리십시오,색상 변화。";
} else {
    echo "그리기 실패 또는 색상이 변경되지 않았습니다。";
}
?>

$ beforecolor$ afcColor를 비교함으로써, 드로잉 작동이 이미지에서 효과적인지 확실하게 결정할 수 있습니다.

6 단계 (선택 사항) : 결과를 볼 수있는 출력 이미지

 <?php
// 출력 사진
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

이미지를 저장하려면 다음 방법을 사용하여 이미지를 로컬 또는 서버에 저장하여 https://m66.net/uploads/test.png 에 저장할 수도 있습니다.

 <?php
// 이미지를 서버에 저장하십시오
imagepng($image, '/var/www/m66.net/uploads/test.png');
imagedestroy($image);
?>

주목해야 할 것

  • 도면 전후에 선택된 테스트 포인트는 다각형의 가장자리에 있거나 매우 가깝습니다 . 그렇지 않으면 색상이 변하지 않을 수 있습니다.

  • ImageOpenPolygon ()은 경로를 자동으로 닫지 않습니다 (즉, 마지막 지점을 첫 번째 지점에 연결하지 마십시오). 마감 효과가 필요한 경우 시작점을 수동으로 추가하십시오.

  • 이미지 배경이 라인의 색상과 유사한 경우 잘못 판단을 피하기 위해 테스트 지점을주의 깊게 선택해야합니다.

요약

색상 변화를 감지함으로써 ImageOpenPolygon () 이 성공적으로 실행되는지 여부를 확인할뿐만 아니라 도면 위치와 색상 정확도를 간접적으로 확인할 수 있습니다. 이 방법은 육안 눈 검사로 인한 비 효율성과 오류를 피하기 위해 복잡한 이미지 생성 또는 배치 처리 시나리오에서 자동 검증에 적합합니다.

이 튜토리얼이 PHP GD 라이브러리에서 도면 및 탐지 기술을 더 잘 마스터하는 데 도움이되기를 바랍니다.