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

PHP imageline() 함수로 선 그리기 – 문법, 매개변수, 실전 예제 총정리

imageline()은 PHP에 내장된 GD 라이브러리 함수로, 지정한 두 좌표 사이에 직선을 그릴 때 사용합니다. 이미지 위에 구분선, 도형, 그래프 요소 등을 추가해야 할 때 매우 유용하게 활용됩니다.

문법(Syntax)

bool imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

매개변수(Parameters)

imageline() 함수는 총 여섯 개의 매개변수를 받습니다: $image, $x1, $y1, $x2, $y2, $color.

  • $image − 작업 대상이 되는 이미지 리소스를 지정합니다.

  • $x1 − 선의 시작점 x좌표를 지정합니다.

  • $y1 − 선의 시작점 y좌표를 지정합니다.

  • $x2 − 선의 끝점 x좌표를 지정합니다.

  • $y2 − 선의 끝점 y좌표를 지정합니다.

  • $color − 선의 색상을 지정하며, imagecolorallocate() 함수로 생성한 색상 식별자를 사용합니다.

반환값(Return Values)

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

예제 1 − 기존 이미지에 선 추가하기

PNG 파일을 불러온 뒤, imagesetthickness()로 선의 굵기를 조절하고 노란색 가로선을 추가하는 예제입니다.

<?php
    // imagecreatefrompng() 함수로 이미지 생성
    $img = imagecreatefrompng('C:\xampp\htdocs\test\515.png');

    // 선 색상 할당 (노란색)
    $text_color = imagecolorallocate($img, 255, 255, 0);

    // 선의 두께 설정
    imagesetthickness($img, 5);

    // imageline() 함수로 선 추가
    imageline($img, 80, 300, 1140, 300, $text_color);

    // 이미지 출력
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

실행 결과

PHP imageline() 함수로 선 그리기 – 문법, 매개변수, 실전 예제 총정리

예제 2 − 새 이미지에 배경과 선 그리기

imagecreate()로 빈 캔버스를 만들고, 회색 배경 위에 파란색 대각선을 그리는 예제입니다. 이처럼 색상을 다르게 지정하여 여러 개의 선을 겹쳐 그릴 수도 있습니다.

<?php
    // imagecreate() 함수로 새 이미지 생성
    $img = imagecreate(700, 300);

    // 색상 할당
    $grey = imagecolorallocate($img, 122, 122, 122);
    $blue = imagecolorallocate($img, 0, 0, 255);

    // 선의 두께 설정
    imagesetthickness($img, 15);

    // 회색 배경 선 추가
    imageline($img, 0, 0, 550, 400, $grey);

    // 파란색 선 추가
    imageline($img, 0, 0, 550, 400, $blue);

    // 이미지 출력
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

실행 결과

PHP imageline() 함수로 선 그리기 – 문법, 매개변수, 실전 예제 총정리

마무리

imageline()은 PHP GD 라이브러리에서 가장 기본적인 드로잉 함수 중 하나입니다. imagecolorallocate()로 색상을 정의하고, imagesetthickness()로 선의 굵기를 조절하면 간단한 코드만으로도 이미지 위에 원하는 형태의 선을 자유롭게 그릴 수 있습니다. 작업이 끝난 후에는 imagedestroy()를 호출하여 메모리를 해제하는 습관을 들이는 것이 좋습니다.