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

PHP imagecopymergegray() 함수 – 이미지 회색조 병합 방법 총정리

PHP의 imagecopymergegray() 함수는 한 이미지의 일부를 다른 이미지로 복사하면서 회색조(grayscale) 효과를 적용해 병합하는 데 사용됩니다. 워터마크 처리나 이미지 합성 시 유용하게 활용할 수 있습니다.

문법(Syntax)

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

함수 이름에 'gray'가 포함되어 있어 imagecopymerge()와 혼동하기 쉬운데, 이 함수는 복사된 영역을 지정한 비율만큼 회색조로 변환한다는 점이 가장 큰 차이입니다.

매개변수(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 Value)

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

예제 1: 기본 사용법

다음은 GIF 이미지의 일부를 회색조 비율 60으로 병합하는 예제입니다.

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

실행 결과

위 코드를 실행하면 복사된 영역이 약 60% 수준의 회색조로 변환되어 대상 이미지에 병합된 결과를 확인할 수 있습니다.

예제 2: 좌표와 비율 변경

이번에는 x, y 좌표와 크기, 그리고 pct 값을 다르게 설정한 예제입니다. pct가 100이므로 회색조 없이 원본 색상 그대로 병합됩니다.

<?php
   $destImg = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
   $srcImg = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
   imagecopymergegray($destImg, $srcImg, 20, 10, 0, 0, 410, 130, 100);
   header('Content-Type: image/png');
   imagegif($destImg);
   imagedestroy($destImg);
   imagedestroy($srcImg);
?>

실행 결과

좌표가 (20, 10)으로 이동하고 복사 영역이 커졌으며, pct 값이 100이라 원본 이미지의 색상이 그대로 유지된 채 병합되는 것을 확인할 수 있습니다.

정리

imagecopymergegray()는 imagecopymerge()와 사용법이 거의 동일하지만, 마지막 pct 매개변수가 투명도가 아닌 회색조 변환 정도를 조절한다는 점이 핵심입니다. 이미지 편집 자동화, 워터마크 제작 등 GD 라이브러리를 활용한 이미지 처리 작업에 폭넓게 응용할 수 있습니다.