이 기사에서는 주로 PHP에서 여러 이미지를 병합하는 방법을 공유합니다. PHP imagecopymerge 함수는 두 이미지가 오버레이될 때 오버레이 투명도 설정을 지원할 수 있습니다. 실제로 PHP 내부에서는 오버레이 투명도를 지원하지 않습니다. 소스 코드에서 imagecopymerge의 투명도 매개변수는 다음과 같습니다. 100인 경우 imagecopy 함수를 직접 호출합니다.
그러나 imagecopy 기능은 복사할 때 png 이미지의 원본 투명 정보를 유지할 수 있지만 imagecopymerge는 이미지 자체의 투명한 복사본을 지원하지 않습니다.
다음은 설명할 실제 예입니다.
로고를 넣으세요. 이미지에 워터마크를 표시합니다.
일반적으로 로고는 투명 png 이미지, logo.png,
이제 이 로고를 사진에 넣으려면
imagecopymerge 기능을 사용하여 밝은 색상을 추가하려면 아이콘과 URL로 구성됩니다. 워터마크 아이콘의 투명도는 30%이지만 IE6에서는 png 투명도를 지원하지 않기 때문에 로고 자체의 png가 불투명해집니다. 이미지 복사 기능을 사용하면 로고 자체의 투명 정보를 유지할 수 있지만 밝기 30%를 달성할 수 없습니다. 워터마크 오버레이,
php 누군가가 이를 구현한 공식적인 방법은 imagecopymerge_alpha 함수를 사용하여 이 두 기능의 기능을 직접 구현하는 것입니다. png 자체의 투명도를 유지하면서 사용자 정의 투명도 오버레이를 얻을 수 있습니다. 이 기능은 $opacity = 100 - $opacity입니다. 투명도를 얻으려면 그 반대인 것 같습니다
$dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); imagecopy($dst, $src, 100, 100, 0, 0, 100, 100);//完成合并
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){ $opacity=$pct; // getting the watermark width $w = imagesx($src_im); // getting the watermark height $h = imagesy($src_im); // creating a cut resource $cut = imagecreatetruecolor($src_w, $src_h); // copying that section of the background to the cut imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h); // inverting the opacity $opacity = 100 - $opacity; // placing the watermark now imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h); imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity); }
관련 권장 사항:
php는 WeChat에서 이미지 병합을 구현합니다. - Jiugongge 사진
위 내용은 PHP에서 여러 그림을 병합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!