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);
?>
출력 결과

위 코드는 초록색 선으로 세 개의 꼭짓점을 잇는 열린 다각형을 그립니다. 첫 번째 점(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);
?>
출력 결과

이 예제에서는 청록색(cyan) 선으로 여섯 개의 좌표를 연결하여 다각형 형태의 도형을 그립니다. 마지막 좌표가 첫 번째 좌표와 같게 설정되어 있어 사실상 닫힌 모양처럼 보이지만, 함수 자체는 경로를 자동으로 닫지 않는다는 점이 imageopenpolygon()의 특징입니다.
정리
imageopenpolygon() 함수는 이미지 처리 작업에서 열린 선분 형태의 다각형을 간단하게 그릴 수 있는 유용한 도구입니다. 차트, 다이어그램, 경로 표시 등 다양한 그래픽 작업에 활용할 수 있으며, PHP 7.2.0부터 공식적으로 지원됩니다.