thinkphp 使用phpqrcode生成带logo二维码 并生成海报

1-下载类库

composer require aferrandini/phpqrcode -vvv

2-common的方法

//$text  文本的内容
//$logo  logo图片
function code($text,$logo){
    //二维码图片保存路径
    $pathname = APP_PATH . '/../Public/upload/';
    if(!is_dir($pathname)) { //若目录不存在则创建之
        mkdir($pathname);
    }
    vendor("phpqrcode.phpqrcode");

//二维码图片保存路径(若不生成文件则设置为false)
    $filename = $pathname . "/qrcode_" . time() . ".png";
//二维码容错率,默认L
    $level = "L";
//二维码图片每个黑点的像素,默认4
    $size = '10';
//二维码边框的间距,默认2
    $padding = 2;
//保存二维码图片并显示出来,$filename必须传递文件路径
    $saveandprint = true;

//生成二维码图片
    \PHPQRCode\QRcode::png($text,$filename,$level,$size,$padding,$saveandprint);

//二维码logo
    $QR = imagecreatefromstring(file_get_contents($filename));
    $logo = imagecreatefromstring(file_get_contents($logo));
    $QR_width = imagesx($QR);
    $QR_height = imagesy($QR);
    $logo_width = imagesx($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, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
    imagepng($QR,$filename);
return $filename;
}

3--控制器

    public function code(){
        $logo=request()->file("file");
        $pathImg="";
        //移动文件到框架应用更目录的public/uploads/
        $info = $logo->move(ROOT_PATH . 'public' . DS . 'upload' . DS . 'admin' . DS . date('Y') . DS . date('m-d'),md5(microtime(true)));
        if ($info) {
            $pathImg = "./public/upload/admin/" . date('Y') . '/' . date('m-d') . '/' . $info->getFilename();
        } else {
            //错误提示用户
            return $this->error($logo->getError());
        }
        $logo=$pathImg;
        //二维码URL参数
        $text = "http://www.baidu.com";

        $filename=code($text,$logo);

        echo "<img src='$filename'>";



        $image = \think\Image::open('./public/images/q.png');
        // 给原图居中添加透明度为100的水印并保存到$a.png
        $a="./public/upload/11.jpg";
        $image->water('./public/upload/qrcode_1536730572.png',\think    \Image::WATER_CENTER,100)->save($a);

    }

参考地址:https://www.kancloud.cn/he_he/thinkphp5

ThinkPHP5开发小程序推广分享参数二维码生成是一种在小程序中推广活动的有效方式。我们可以利用ThinkPHP5框架提供的接口和功能来实现这个需求。 首先,我们需要在小程序中生成一个参数的二维码。可以使用小程序提供的wx.getSceneParams方法来获取当前页面的参数,并将参数转化为字符串拼接到跳转链接中。然后,使用微信开放平台提供的qr_code接口生成一个参数的二维码图片,并将图片保存到服务器上。 在ThinkPHP5中,我们可以创建一个二维码生成的控制器,接收前端传来的参数,并根据参数生成二维码。可以使用EasyWeChat等第三方库来调用微信开放平台的接口生成二维码图片。生成二维码可以保存到服务器上的指定路径。 接下来,我们需要将生成二维码图片返回给前端。在控制器中,可以使用ThinkPHP5提供的return方法将图片路径返回给前端。前端可以通过路径来展示二维码图片。 最后,我们可以在小程序中实现推广分享的逻辑。在用户点击分享按钮时,可以获取当前页面的路径和参数,并将路径和参数拼接到自定义的分享链接中,生成一个参数的分享链接。通过这个链接,其他用户进入小程序后,可以通过分享者的分享链接获得参数,从而参与相应的推广活动。 总结来说,使用ThinkPHP5开发小程序推广分享参数二维码生成,需要在小程序中生成参数的二维码图片,并利用ThinkPHP5提供的功能将图片保存到服务器上。然后,将生成二维码图片路径返回给前端展示,并在小程序中实现推广分享的逻辑。这样,我们就可以实现小程序的推广分享功能,参数二维码生成使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值