현재 위치: > 최신 기사 목록> PHP의 ImageOpenPolygon () 함수를 사용하여 그려진 다각형 그림에 그림자 효과를 추가하는 방법은 무엇입니까?

PHP의 ImageOpenPolygon () 함수를 사용하여 그려진 다각형 그림에 그림자 효과를 추가하는 방법은 무엇입니까?

M66 2025-06-23

이미지 처리에서 다각형 그래픽에 그림자 효과를 추가하는 것이 일반적인 요구 사항입니다. PHP는 ImageOpenPolygon () 함수가 다각형을 그리는 데 사용되는 강력한 그래픽 처리 기능 라이브러리를 제공합니다. 몇 가지 간단한 트릭 으로이 다각형 그림에 그림자 효과를 추가하여 그림의 3 차원을 증가시킬 수 있습니다.

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

PHP에서 ImageOpenPolygon () 함수는 다각형을 생성하는 데 사용됩니다. 이 기능을 사용하면 다각형의 정점을 정의하여 이미지 리소스에 그릴 수 있습니다. 기본 구문은 다음과 같습니다.

 imageopenpolygon($image, $points, $num_points, $color);
  • $ 이미지 : 이미지 리소스.

  • $ 포인트 : 다각형의 모든 정점 좌표를 포함하는 배열.

  • $ num_points : 다각형의 정점 수.

  • $ 컬러 : 다각형의 색상.

이 기능을 통해 다양한 모양의 다각형을 그릴 수 있으며이 다각형에 그림자 효과를 추가하려면 추가 처리가 필요합니다.

그림자 효과를 추가하는 단계

  1. 이미지 자원 생성 : 먼저 이미지 리소스를 만들어야합니다.

  2. 다각형 그리기 : imageopenpolygon ()을 사용하여 다각형을 그립니다.

  3. 그림자 그리기 : 그림자를 약간 오프셋하고 어두운 색으로 채우도록 광원의 반사처럼 보이게합니다.

  4. 병합 레이어 : 시각 효과를 위해 그림자와 다각형 그래픽을 병합하십시오.

다음은이 프로세스를 구현하는 코드 예입니다.

 <?php
// 이미지 리소스를 만듭니다
$image = imagecreatetruecolor(400, 400);

// 색상을 할당합니다
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$shadowColor = imagecolorallocate($image, 100, 100, 100); // 그림자 색상

// 배경색을 채우십시오
imagefill($image, 0, 0, $white);

// 다각형 정점을 정의하십시오
$points = [
    100, 100, // 꼭지점1
    200, 50,  // 꼭지점2
    300, 150, // 꼭지점3
    250, 250, // 꼭지점4
    150, 200  // 꼭지점5
];

// 그림자를 그립니다(작은 거리로 상쇄됩니다)
$shadowOffsetX = 10;
$shadowOffsetY = 10;
$shadowPoints = [];
foreach ($points as $key => $value) {
    if ($key % 2 == 0) {
        $shadowPoints[] = $value + $shadowOffsetX; // x 오프셋을 좌표로 조정하십시오
    } else {
        $shadowPoints[] = $value + $shadowOffsetY; // y 오프셋을 좌표로 조정하십시오
    }
}

// 그림자를 그립니다
imageopenpolygon($image, $shadowPoints, count($shadowPoints) / 2, $shadowColor);

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

// 브라우저에 이미지를 출력합니다
header("Content-Type: image/png");
imagepng($image);

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

코드 구문 분석

  1. 이미지 자원 생성 : imageCreatetRueColor () 와 할당 된 색상 (흰색, 검은 색 및 그림자 색상)을 사용하여 400x400 이미지 리소스를 만들었습니다.

  2. 다각형 정점 정의 : 우리는 $ points 배열에 저장된 정점 좌표로 5 점 다각형을 정의합니다.

  3. 그림자 그리기 : 다각형의 각 정점 좌표를 약간 상쇄하여 그림자의 정점 좌표를 얻습니다. 섀도우 오프셋은 $ ShadowOffsetX$ ShadowOffsety 로 제어됩니다.

  4. 다각형 그리기 : ImageOpenPolygon () 함수를 통해 그림자와 다각형을 별도로 그리면 그림자가 약간 변하기 위해 그림자가 입체로 보이게합니다.

  5. 출력 이미지 : 마지막으로 imagePng () 함수를 통해 생성 된 이미지를 브라우저에 출력합니다.