현재 위치: > 최신 기사 목록> imagecopymerge 기능의 기본 사용에 대한 자세한 설명 : 두 이미지를 병합하는 방법은 무엇입니까?

imagecopymerge 기능의 기본 사용에 대한 자세한 설명 : 두 이미지를 병합하는 방법은 무엇입니까?

M66 2025-06-21

PHP에서 imageecopymerge () 함수는 이미지 처리의 일반적인 방법입니다. 부품 또는 한 이미지를 모두 다른 이미지로 병합 할 수 있습니다. 이 기능의 주요 목적은 이미지에서 병합, 중첩, 작물 및 기타 작업을 병합하는 것입니다. 이 기사는 ImageCopyMerge () 함수의 기본 사용법과이를 사용하는 방법을 두 개의 이미지를 병합하는 방법에 대해 자세히 소개합니다.

1. imageCopyMerge () 함수 소개

imageCopyMerge () 함수의 프로토 타입은 다음과 같습니다.

 bool imagecopymerge(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height, int $pct)

매개 변수 설명 :

  • $ DST_IMAGE : 대상 이미지 리소스, 다른 이미지를 병합하려는 이미지를 나타냅니다.

  • $ src_image : 소스 이미지 자원, 대상 이미지에 병합하려는 이미지를 나타냅니다.

  • $ dst_x, $ dst_y : 대상 이미지에서 소스 이미지를 붙여 넣는 시작 위치 (즉, 왼쪽 상단 코너의 좌표).

  • $ src_x, $ src_y : 소스 이미지의 시작 위치 (즉, 왼쪽 상단 코너의 좌표).

  • $ src_width, $ src_height : 소스 이미지에서 복사 할 영역의 너비와 높이.

  • $ PCT : 병합 된 투명성의 백분율 인 0은 완전히 투명하며 100은 완전히 불투명하다는 것을 의미합니다.

이 함수의 기능은 소스 이미지 ( $ src_image )를 지정된 위치에서 대상 이미지 ( $ dst_image )로 복사하는 것입니다. 복사 된 영역은 소스 이미지의 너비와 높이를 지정할 수 있으며 병합 투명도는 $ PCT 로 제어됩니다.

2. imageCopyMerge () 함수를 사용하는 기본 단계

다음으로 imageecopymerge ()를 사용하여 실용적인 예제를 사용하여 두 이미지를 병합하는 방법을 보여줍니다.

1 단계 : 그림을로드하십시오

먼저 두 이미지를로드해야합니다. PHP는 imageCreatefromjpeg () , imageCreatefrommpng () 등과 같은 다른 형식으로 이미지를로드하는 여러 기능을 제공합니다. 배경 이미지와 중첩 해야하는 로고 이미지가 있다고 가정 해 봅시다.

 // 대상 이미지를로드하십시오(배경 이미지)
$bg_image = imagecreatefromjpeg('background.jpg');

// 소스 이미지를로드하십시오(logo그림)
$logo_image = imagecreatefrompng('logo.png');

2 단계 : imagecopymerge ()를 사용하여 이미지 병합

Logo.png를 Background.jpg 로 병합하고 로고가 50%로 투명 해지려고한다고 가정합니다. 다음 코드를 통해이를 구현할 수 있습니다.

 // 병합 위치를 설정하십시오(目标그림像的左上角位置)
$dst_x = 50;
$dst_y = 50;

$src_x = 0;
$src_y = 0;
$src_width = imagesx($logo_image);
$src_height = imagesy($logo_image);

// 투명성을 설정하십시오50%
$pct = 50;

// 合并그림像
imagecopymerge($bg_image, $logo_image, $dst_x, $dst_y, $src_x, $src_y, $src_width, $src_height, $pct);

3 단계 : 합성 된 이미지를 출력합니다

병합 작업이 완료되면 결과 이미지를 출력해야합니다. ImageJpeg () (또는 이미지 형식에 따라 다른 적절한 함수)를 사용하여 병합 된 이미지를 파일로 저장하거나 브라우저에 직접 표시 할 수 있습니다.

 // 输出合成后的그림像到浏览器
header('Content-Type: image/jpeg');
imagejpeg($bg_image);

// 리소스를 자유롭게합니다
imagedestroy($bg_image);
imagedestroy($logo_image);

또는 이미지를 파일에 저장할 수 있습니다.

 // 保存合成后的그림像到文件
imagejpeg($bg_image, 'result.jpg');

3. 주목할만한 것들

  • 투명성 설정 : ImageCopymerge ()는 투명성 설정 ( $ PCT 매개 변수)을 지원하지만 투명성은 PNG 및 GIF 형식의 이미지에만 유효합니다. JPEG 이미지를 병합하면 JPEG 자체가 투명 채널을 지원하지 않기 때문에 투명성 효과는 분명하지 않습니다.

  • 리소스 파괴 : 이미지를 처리 ​​한 후 이미지 스트로이 ()를 사용하여 메모리 누출을 방지하기 위해 이미지 리소스를 확보해야합니다.

  • 이미지 크기 : 소스 이미지의 크기는 대상 이미지의 크기에 따라 합리적으로 위치해야합니다. 그렇지 않으면 이미지가 늘어나거나 잘릴 수 있습니다. imagesx ()imagesy ()를 사용하여 이미지의 너비와 높이를 가져와 필요에 따라 소스 이미지의 위치와 크기를 조정할 수 있습니다.

4. 샘플 요약

위의 단계를 통해 이미지 합성, 오버레이 및 기타 효과를 달성하기 위해 imagecopymerge () 함수를 사용하여 워터 마크, 퍼즐 및 기타 작업을 만드는 데 특히 적합합니다. 병합 위치, 투명성 및 크기를 합리적으로 설정함으로써 다양한 이미지 합성 요구를 유연하게 처리 할 수 ​​있습니다.