>  기사  >  백엔드 개발  >  PHP에서 여러 그림을 병합하는 방법

PHP에서 여러 그림을 병합하는 방법

小云云
小云云원래의
2018-02-27 10:32:372572검색

이 기사에서는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.