ImageFillToBorder () 의 기능은 지정된 경계 색상이 발생할 때까지 이미지의 특정 지점에서 채우는 것입니다. 이것은 페인트 버킷 도구의 동작과 유사합니다.
기능 프로토 타입 :
bool imagefilltoborder(GdImage $image, int $x, int $y, int $border_color, int $color)
$ x 와 $ y 는 시작점 좌표입니다.
$ border_color는 채우기의 경계 색상입니다.
$ 색상은 채우기 색상입니다.
이 함수의 특성은 "경계 트리거 채우기"입니다. 지정된 좌표에서 시작하여 경계 색상에 속하지 않는 모든 픽셀을 경계가 발생할 때까지 채우기 색상으로 대체합니다.
ImageFilledRectangle ()은 채워진 사각형 그림을 그리는 데 사용됩니다. 이 기능은 기하학적 인물의 그림에 더 경향이 있습니다.
기능 프로토 타입 :
bool imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color)
$ x1, $ y1 은 왼쪽 상단 코너 좌표입니다.
$ x2, $ y2 는 오른쪽 하단 코너의 좌표입니다.
$ 색상은 채우기 색상입니다.
이 함수는 경계 색상을 고려하지 않고 지정된 사각형 영역의 모든 픽셀을 지정된 색상으로 직접 채우고 이미지 컨텐츠의 컨텍스트에 의존하지 않습니다.
기능 | ImageFillToBorder | ImageFilledRectAngle |
---|---|---|
출발점 | 출발점이 필요합니다 | 좌표 영역을 지정합니다 |
충전 조건 | 테두리 색상을 만날 때 중지하십시오 | 좌표 사각형으로 만 채우십시오 |
유연성 | 높음은 불규칙 그래픽에 사용할 수 있습니다 | 낮고 일반 사각형에 적합합니다 |
성능 | 비교적 느린 (재귀 검색) | 고효율 |
응용 프로그램 시나리오 | 경계 충전 영역을위한 "페인트 버킷"도구와 유사 | 차트 그리기 및 생성과 같은 명확한 구조가있는 장면 |
예를 들어 :
사용자 가 모든 영역을 클릭하고 색상을 채우도록 요구하는 대화식 맵을 작성한다고 가정하면 Click 위치 및 경계 색상으로만 전달하면 필요한 선택입니다.
$image = imagecreatefrompng("https://gitbox.net/images/map.png");
$fill_color = imagecolorallocate($image, 255, 0, 0);
$border_color = imagecolorallocate($image, 0, 0, 0);
imagefilltoborder($image, $x, $y, $border_color, $fill_color);
그러나 막대 차트의 열과 같은 차트에 직사각형 막대를 그리려면 ImageFilledRectangle ()가 더 간단하고 간단한 선택입니다.
$image = imagecreatetruecolor(200, 100);
$color = imagecolorallocate($image, 0, 128, 255);
imagefilledrectangle($image, 20, 20, 80, 80, $color);
이 질문은 절대적인 답변이 없지만 특정 요구에 따라 다릅니다.
지점에서 불규칙한 영역을 채워야합니다 (예 : 클릭 후 개요 내부의 영역을 채우는 등) : ImageFillToBorder ()를 선택하십시오.
정기적 인 기하학적 형태 (예 : 차트 요소, 배경 블록)를 빠르게 그릴 필요가 있습니다 . ImageFilledRectangle () 사용이 더 적절합니다.
성능 문제에 대해 걱정하고 필러 그래프의 모양이 확실하다면 ImageFilledRectangle () 이 선호됩니다. 더 빨리 실행되며 예상치 못한 경계 감지 문제가 없습니다.