利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)

前期准备

1、利用phpqrcode生成二维码:

原理分析:

下载下来的类文件是一个压缩包,包含很多文件和演示程序,我们只需要里边的phpqrcode.php

这一个文件就可以生成二维码了,它是一个多个类的集合文件,我们需要用到里边的QRcode类png()方法:

//测试生成带头像的网站二维码海报
    public function ce_haibao_qrcode(){
        $codeurl = "https://www.baidu.com";

        Vendor('PHPQRcode.class#phpqrcode');

        $logoQR = "http://thirdwx.qlogo.cn/mmopen/vi_32/icaYhiapVcmsyGnHouHeSvYiaz8yxtvfBicgx5x8joGh4uNiaibp8skQf8Uv4CNtibsJDndbOQwI9LSvDQP6slFQaLy4g/132";

        $level=3;
        $size=6$errorCorrectionLevel =intval($level) ;容错级别
        $matrixPointSize = $size);生成图片大小

        $dirPath ='./Uploads/qrcode/'.date('Y-m-d').'/';保存二维码路径
        $dirPath_B ='/Uploads/qrcode/'.保存二维码路径
        if(!file_exists($dirPath)){
            mkdir($dirPath,0777);
        }
        $tmpName = time().".png"; 保存在服务器上的二维码名称
        $qrcodeName = $dirPath .$tmpName; 保存在服务器上的二维码路径
        $qrcodeName_B = $dirPath_B .保存在服务器上的二维码路径

        //生成二维码图片
        $object = new \QRcode();
        $object->png($codeurl,$qrcodeName,1)">$errorCorrectionLevel,1)">$matrixPointSize,2);
        $QR = imagecreatefrompng($qrcodeName);
        $QR = $qrcodeName$QRlogoPath = './Uploads/qrcode/qrlogo/'.date('Y-m-d').'/'$QRlogoPath_B = '/Uploads/qrcode/qrlogo/'.;
        $QRlogoPath$QRlogoPath,1)">$qrcode = time().'.png'$QRlogo = $QRlogoPath .$qrcode$QRlogo_B = $QRlogoPath_B .if($logoQR !==FALSE){
            $QR = imagecreatefromstring(file_get_contents($QR));
            $logo = imagecreatefromstring($logoQR));

            $QR_width = imagesx($QR);二维码图片宽度
            $QR_height = imagesy(二维码图片高度
            $logo_width = imagesx($logo);logo图片宽度
            $logo_height = imagesy(logo图片高度
            $logo_qr_width = $QR_width / 5;
            $scale = $logo_width/$logo_qr_width$logo_qr_height = $logo_height/$scale$from_width = ($QR_width - $logo_qr_width) / 2;
            重新组合图片并调整大小
            imagecopyresampled($QR,1)">$logo,1)">$from_width,1)">$logo_qr_width,1)">$logo_qr_height,1)">$logo_width,1)">$logo_height);
            header('Content-type: image/png');
       //合成带logo的二维码 ImagePng(
$QRlogo); $dst_path = './Uploads/haibao/haibao.png';海报素材底图 $src_path = $QRlogo; 覆盖图,用上面的那张图QRlogo $haibaoPath = './Uploads/qrcode/haibao/'.$haibaoPath_B = '/Uploads/qrcode/haibao/'.date('Y-m-d').'/'; $haibaoPath)){ $haibaoPath,1)">); } $haibao = $haibao = $haibaoPath .$haibao$haibao_B = $haibaoPath_B .$haibao; //创建图片实例 $dst = imagecreatefromstring($dst_path));海报 $src = imagecreatefromstring($src_path));二维码 //获取覆盖图的宽高 list($src_w,1)">$src_h) = getimagesize($src_path获取海报的宽高 $dst_w,1)">$dst_h) = $dst_path); imagecopymerge($dst,$src,20,120,$src_w,$src_h,100); imagecopymerge($dst,1)">$src,($dst_w-$src_w)/2,1)">$dst_h-100-$src_h,100); imagepng($haibao);生成图片并保存到服务器上 合成的海报 imagedestroy($dst); imagedestroy($src); substr($haibao,1);去掉左边第一个小点 $arr['msg'] = echo json_encode($arr);exit; } }

 

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...