현재 위치: > 최신 기사 목록> ImageFillToBorder와 ImageFilledRectangle의 차이 분석

ImageFillToBorder와 ImageFilledRectangle의 차이 분석

gitbox 2025-05-29

1. 기능 개요

1. ImageFillToBorder ()

ImageFillToBorder () 의 기능은 지정된 경계 색상이 발생할 때까지 이미지의 특정 지점에서 채우는 것입니다. 이것은 페인트 버킷 도구의 동작과 유사합니다.

기능 프로토 타입 :

 bool imagefilltoborder(GdImage $image, int $x, int $y, int $border_color, int $color)
  • $ x$ y 는 시작점 좌표입니다.

  • $ border_color는 채우기의 경계 색상입니다.

  • $ 색상은 채우기 색상입니다.

이 함수의 특성은 "경계 트리거 채우기"입니다. 지정된 좌표에서 시작하여 경계 색상에 속하지 않는 모든 픽셀을 경계가 발생할 때까지 채우기 색상으로 대체합니다.

2. ImageFilledRectangle ()

ImageFilledRectangle ()은 채워진 사각형 그림을 그리는 데 사용됩니다. 이 기능은 기하학적 인물의 그림에 더 경향이 있습니다.

기능 프로토 타입 :

 bool imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color)
  • $ x1, $ y1 은 왼쪽 상단 코너 좌표입니다.

  • $ x2, $ y2 는 오른쪽 하단 코너의 좌표입니다.

  • $ 색상은 채우기 색상입니다.

이 함수는 경계 색상을 고려하지 않고 지정된 사각형 영역의 모든 픽셀을 지정된 색상으로 직접 채우고 이미지 컨텐츠의 컨텍스트에 의존하지 않습니다.


2. 시나리오 비교를 사용하십시오

기능 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);

3. 그래픽을 채우는 데 어떤 것이 더 적합합니까?

이 질문은 절대적인 답변이 없지만 특정 요구에 따라 다릅니다.

  • 지점에서 불규칙한 영역을 채워야합니다 (예 : 클릭 후 개요 내부의 영역을 채우는 등) : ImageFillToBorder ()를 선택하십시오.

  • 정기적 인 기하학적 형태 (예 : 차트 요소, 배경 블록)를 빠르게 그릴 필요가 있습니다 . ImageFilledRectangle () 사용이 더 적절합니다.

성능 문제에 대해 걱정하고 필러 그래프의 모양이 확실하다면 ImageFilledRectangle () 이 선호됩니다. 더 빨리 실행되며 예상치 못한 경계 감지 문제가 없습니다.