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

PHP imagecopymerge() 함수 – 이미지 복사 및 병합 방법과 예제

PHP의 imagecopymerge() 함수는 한 이미지의 일부를 복사하여 다른 이미지 위에 합치는(병합하는) 기능을 수행합니다. 워터마크 삽입, 로고 합성 등 두 이미지를 겹쳐야 하는 다양한 상황에서 유용하게 활용됩니다.

문법(Syntax)

imagecopymerge ( dst_img, src_img, dst_x, dst_y, src_x, src_y, src_w, src_h, pct )

매개변수(Parameters)

  • dst_im – 대상(결과) 이미지의 링크 리소스를 지정합니다.

  • src_im – 원본(소스) 이미지의 링크 리소스를 지정합니다.

  • dst_x – 대상 이미지에서 병합이 시작될 지점의 x 좌표입니다.

  • dst_y – 대상 이미지에서 병합이 시작될 지점의 y 좌표입니다.

  • src_x – 원본 이미지에서 복사가 시작될 지점의 x 좌표입니다.

  • src_y – 원본 이미지에서 복사가 시작될 지점의 y 좌표입니다.

  • src_w – 복사할 원본 영역의 너비입니다.

  • src_h – 복사할 원본 영역의 높이입니다.

  • pct – 두 이미지를 병합할 투명도 비율로, 0부터 100 사이의 값을 가집니다. 값이 클수록 원본 이미지가 더 진하게 표시됩니다.

반환값(Return)

imagecopymerge() 함수는 병합에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

예제 1

다음은 두 개의 PNG 이미지를 불러와 하나로 병합하는 기본적인 예제입니다:

<?php
    $destImg = imagecreatefrompng('https://www.tutorialspoint.com/images/Javascript.png');
    $srcImg = imagecreatefrompng('https://www.tutorialspoint.com/images/java8.png');
    imagecopymerge($destImg, $srcImg, 10, 10, 0, 0, 350, 120, 60);
    header('Content-Type: image/png');
    imagegif($destImg);
    imagedestroy($destImg);
    imagedestroy($srcImg);
?>

출력 결과

위 코드를 실행하면 두 이미지가 병합된 결과가 화면에 출력됩니다:

PHP imagecopymerge() 함수 – 이미지 복사 및 병합 방법과 예제

예제 2

이번에는 서로 다른 좌표와 병합 비율(pct) 값을 사용하여 이미지를 복사하고 합치는 예제를 살펴보겠습니다:

<?php
$destImg = imagecreatefrompng('https://www.tutorialspoint.com/images/php.png');
$srcImg = imagecreatefrompng('https://www.tutorialspoint.com/images/Operating-System.png');
    imagecopymerge($destImg, $srcImg, 10, 20, 0, 0, 390, 100, 80);
    header('Content-Type: image/png');
    imagegif($destImg);
    imagedestroy($destImg);
    imagedestroy($srcImg);
?>

출력 결과

위 코드의 실행 결과는 다음과 같습니다:

PHP imagecopymerge() 함수 – 이미지 복사 및 병합 방법과 예제

정리

imagecopymerge() 함수는 GD 라이브러리를 통해 이미지의 특정 영역을 복사하고, pct 매개변수로 투명도를 조절하며 자연스럽게 병합할 수 있는 강력한 도구입니다. 참고로 알파 채널(투명도)까지 정밀하게 처리해야 하는 경우에는 imagecopy() 함수나 imagefilter() 등을 함께 고려하는 것이 좋습니다.