이미지 처리에 PHP의 GD 라이브러리를 사용하는 경우 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를 반환하지만 실제 복잡한 응용 분야에서는 다음과 같은 반환 값만으로 모든 상세 오류를 캡처하지 못할 수 있습니다.
이미지 리소스가 파괴되었지만 함수는 여전히 사실을 반환합니다.
지정된 색상은 이미지의 배경에서 볼 수 없습니다.
따라서 이미지의 특정 위치에서 색상 변화를 직접 감지하면 도면 효과가 더 직관적으로 확인 될 수 있습니다.
먼저 흰색 배경으로 이미지를 만듭니다.
<?php
// 빈 이미지를 만듭니다
$image = imagecreatetruecolor(200, 200);
// 할당 흰색 배경
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
?>
다각형의 점과 색상 정의 :
<?php
// 다각형의 정점을 정의하십시오
$points = [
50, 50,
150, 50,
100, 150
];
// 드로잉에 빨간색을 할당하십시오
$red = imagecolorallocate($image, 255, 0, 0);
?>
그리기 전에, 우리는 그릴 것으로 예상되는 선 세그먼트의 지점을 선택하고 현재 색상을 기록합니다.
<?php
// 다각형 선에 가까운 지점을 선택하십시오
$x = 100;
$y = 50;
// 그리기 전에 색상을 기록하십시오
$beforeColor = imagecolorat($image, $x, $y);
?>
<?php
// 열린 다각형을 그립니다
$result = imageopenpolygon($image, $points, 3, $red);
?>
<?php
// 그리기 후 색상을 기록하십시오
$afterColor = imagecolorat($image, $x, $y);
// 색상이 변경되는지 확인하십시오
if ($beforeColor !== $afterColor && $result) {
echo "성공적으로 그리십시오,색상 변화。";
} else {
echo "그리기 실패 또는 색상이 변경되지 않았습니다。";
}
?>
$ beforecolor 와 $ afcColor를 비교함으로써, 드로잉 작동이 이미지에서 효과적인지 확실하게 결정할 수 있습니다.
<?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 라이브러리에서 도면 및 탐지 기술을 더 잘 마스터하는 데 도움이되기를 바랍니다.