Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP imageopenpolygon() 함수로 열린 다각형 그리는 방법

imageopenpolygon() 함수란?

imageopenpolygon()은 PHP의 GD 라이브러리에 내장된 함수로, 주어진 이미지 위에 시작점과 끝점이 연결되지 않은 열린 다각형(open polygon)을 그리는 데 사용됩니다. 일반적인 imagepolygon() 함수와 달리 마지막 꼭짓점과 첫 번째 꼭짓점을 자동으로 연결하지 않기 때문에, 선분이 열려 있는 도형을 표현할 때 유용합니다.

문법(Syntax)

bool imageopenpolygon(GdImage $image, array $points, int $num_points, int $color)

매개변수(Parameters)

imageopenpolygon() 함수는 네 가지 매개변수를 받습니다.

  • $image − 작업 대상이 되는 이미지 리소스를 지정합니다.
  • $points − 다각형을 구성하는 꼭짓점 좌표들을 담은 배열을 지정합니다. 좌표는 x, y 순서로 연속해서 나열합니다.
  • $num_points − 꼭짓점(점)의 개수를 지정합니다. 유효한 다각형을 그리려면 최소 3개 이상의 점이 필요합니다.
  • $color − 다각형 선의 색상을 지정합니다. imagecolorallocate() 함수로 생성한 색상 식별자를 사용합니다.

반환값(Return Values)

imageopenpolygon() 함수는 다각형 그리기에 성공하면 true를, 실패하면 false를 반환합니다.

예제 1: 세 개의 점으로 열린 다각형 그리기

<?php
    // imagecreatetruecolor() 함수로 빈 이미지를 생성합니다.
    $img = imagecreatetruecolor(700, 300);

    // 다각형에 사용할 색상을 할당합니다.
    $col_poly = imagecolorallocate($img, 0, 255, 0);

    // 다각형을 그립니다.
    imageopenpolygon($img, array(
        0, 0,
        100, 200,
        400, 200
    ),
    3,
    $col_poly);

    // 브라우저로 이미지를 출력합니다.
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

출력 결과

PHP imageopenpolygon() 함수로 열린 다각형 그리는 방법

위 코드는 초록색 선으로 세 개의 꼭짓점을 잇는 열린 다각형을 그립니다. 첫 번째 점(0, 0)과 마지막 점(400, 200) 사이는 자동으로 연결되지 않습니다.

예제 2: 여섯 개의 점으로 다각형 그리기

<?php
    // imagecreatetruecolor() 함수로 빈 이미지를 생성합니다.
    $image = imagecreatetruecolor(700, 300);

    // 색상을 할당합니다.
    $blue = imagecolorallocate($image, 0, 255, 255);

    // 배열에 담긴 여섯 개의 좌표
    $points = array(
        60, 130,
        130, 230,
        280, 230,
        350, 130,
        210, 30,
        60, 130
    );

    // 다각형을 생성합니다.
    imageopenpolygon($image, $points, 6, $blue);

    // 브라우저로 출력합니다.
    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
?>

출력 결과

PHP imageopenpolygon() 함수로 열린 다각형 그리는 방법

이 예제에서는 청록색(cyan) 선으로 여섯 개의 좌표를 연결하여 다각형 형태의 도형을 그립니다. 마지막 좌표가 첫 번째 좌표와 같게 설정되어 있어 사실상 닫힌 모양처럼 보이지만, 함수 자체는 경로를 자동으로 닫지 않는다는 점이 imageopenpolygon()의 특징입니다.

정리

imageopenpolygon() 함수는 이미지 처리 작업에서 열린 선분 형태의 다각형을 간단하게 그릴 수 있는 유용한 도구입니다. 차트, 다이어그램, 경로 표시 등 다양한 그래픽 작업에 활용할 수 있으며, PHP 7.2.0부터 공식적으로 지원됩니다.