현재 위치: > 최신 기사 목록> PHP의 ImageOpenPolygon () 기능을 사용하여 이미지 핫스팟 영역의 정확한 분할을 달성하는 방법은 무엇입니까?

PHP의 ImageOpenPolygon () 기능을 사용하여 이미지 핫스팟 영역의 정확한 분할을 달성하는 방법은 무엇입니까?

M66 2025-07-08

웹 개발에서 이미지 핫스팟 영역의 부서는 특히 대화식 사진,지도 또는 게임에서 일반적인 요구 사항입니다. 이미지와의 사용자 상호 작용에는 다른 영역을 클릭 가능한 핫스팟으로 나누어야합니다. PHP는 많은 이미지 처리 기능을 제공하며 ImageOpenPolygon () 함수는이 기능을 구현하는 데 도움이 될 수 있습니다.

ImageOpenPolygon () 함수는 무엇입니까?

PHP의 ImageOpenPolygon () 함수는 표준 GD 라이브러리 기능이 아니므로 일반적으로 PHP의 문서에서는 자세히 찾을 수 없습니다. 그러나 많은 PHP 개발자는 확장자 또는 사용자 정의 구현을 사용하여 그래픽의 다각형을 채우고 핫스팟 영역을 나눌 수 있습니다.

다각형의 핫스팟 영역을 나누기 위해서는 일반적으로 다각형의 정점 좌표를 설정하여 특정 영역을 결정해야합니다. 이 기능은 사용자가 특정 영역을 클릭해야 할 때 다른 이벤트를 트리거하거나 점프 할 수 있습니다.

PHP를 사용하여 핫스팟 영역 부서를 구현하는 기본 단계

  1. 사진로드 <br> imageCreatefromjpeg () 또는 imageCreateFrommpng () 와 같은 함수를 사용하여 대상 이미지를로드하십시오.

     $image = imagecreatefromjpeg('image.jpg');
    
  2. 다각형의 정점 좌표를 정의하십시오 <br> 핫스팟 영역에 대한 다각형을 정의해야합니다. 다각형의 정점 좌표는 배열로 표시 될 수 있습니다. 예를 들어, 사변형의 정점 좌표는 다음과 같습니다.

     $points = [
        50, 50,  // 가리키다1
        150, 50, // 가리키다2
        150, 150,// 가리키다3
        50, 150  // 가리키다4
    ];
    
  3. 다각형 핫스팟을 그립니다 <br> ImageFilledPolygon () 함수를 사용하여 일부 다각형을 이미지에 그리고 특정 색상을 설정하십시오. ImageFilledPolygon ()은 이미지의 채우기 색상으로 다각형을 그립니다.

     $color = imagecolorallocate($image, 255, 0, 0);  // 빨간색
    imagefilledpolygon($image, $points, count($points) / 2, $color);
    
  4. 뜨거운 곳을 얻고 상호 작용하십시오 <br> 이미지를 생성 한 후 이미지 맵 (ImageMap)을 사용하여 이러한 핫스팟 영역의 상호 작용을 설정할 수 있습니다. 다각형 영역을 해당 URL에 매핑하면 특정 영역을 클릭 할 때 해당 페이지로 이동합니다.

    대화식 이미지 인 경우 일반적으로 JavaScript와 HTML의 조합이 필요하며 PHP는 이미지 부품을 처리하고 생성하는 데 책임이 있습니다. 예를 들어:

     <img src="image.php" usemap="#hotspot" />
    <map name="hotspot">
        <area shape="poly" coords="50,50,150,50,150,150,50,150" href="http://m66.net/target-page1" />
    </map>
    

코드 예 : 핫스팟이있는 이미지를 생성합니다

 <?php
// 사진을 만듭니다
$image = imagecreatefromjpeg('image.jpg');

// 定义多边形的顶가리키다
$points = [
    50, 50,  // 가리키다1
    150, 50, // 가리키다2
    150, 150,// 가리키다3
    50, 150  // 가리키다4
];

// 색상 설정
$color = imagecolorallocate($image, 255, 0, 0);  // 빨간색

// 다각형을 그립니다
imagefilledpolygon($image, $points, count($points) / 2, $color);

// 출력 사진
header('Content-Type: image/jpeg');
imagejpeg($image);

// 이미지 자원을 파괴하십시오
imagedestroy($image);
?>

위의 코드는 핫스팟 영역이 포함 된 이미지를 생성하여 JPEG 형식으로 출력합니다. 웹 페이지에서 이러한 핫스팟을 사용하려면 대화식 작업에 HTML 이미지 매핑 ( <map> 태그)을 사용할 수 있습니다.

주목해야 할 것

  • 다각형 정점 좌표 : 전달한 좌표가 올바른지 확인하고 이미지 크기와 일치하십시오. 그렇지 않으면 핫스팟 영역이 올바르게 표시되지 않을 수 있습니다.

  • 이미지 형식 : 다른 이미지 형식 (JPEG, PNG 등)을 사용하여 사용될 수 있으며 imageCreateFrommpng () 또는 ImageJpeg () 등과 같은 함수는 그에 따라 조정할 수 있습니다.

  • 상호 작용 : 클릭 위치를 기반으로 핫스팟을 동적으로 처리하는 것과 같은보다 복잡한 상호 작용이 필요한 경우 프론트 엔드 기술 (예 : JavaScript)을 결합하여 사용자 경험을 향상시키는 것이 좋습니다.

결론적으로

PHP는 다양한 이미지 처리 기능을 제공하여 개발자가 사진에서 핫스팟을 유연하게 처리 할 수 ​​있도록 도와줍니다. ImageFilledPolygon () 함수와 함께 사용되면 개발자는 이미지의 다른 영역을 정확하게 나누어보다 상세한 대화 형 디자인을 달성 할 수 있습니다. 이미지를 동적으로 생성하고 사용자 클릭에 응답 해야하는 장면의 경우 HTML 및 JavaScript와 함께 PHP는 풍부한 이미지 상호 작용 기능을 쉽게 달성 할 수 있습니다.