TP5二维码

2020-01-17  本文已影响0人  菠萝蜜朵弦

1.下载phpqrcode扩展包,存在百度网盘,解压后放在extend目录下


image.png

2.实现方法

        require_once '../extend/phpqrcode/phpqrcode.php';  #引入文件
       
        $reg_url = ''; //todo 页面地址
        $url = $reg_url . '?code=' . $param['code'];  #拼接参数 参数名任意
        $errorCorrectionLevel = 'H';  #容错级别
        $matrixPointSize = 6;  #生成图片大小
        $file_url = "./upload/qrcode/" . date('ymd') . '_' . substr(md5(rand(00001, 99999)), 0, 16) . ".png";  #生成图片路径

        if (file_exists($file_url)) {
            $file_url = substr($file_url, 1);
            return resultArray(1, 'success1', $file_url);
        }

        $object = new \QRcode();
        //新建目录 - 移动logo文件
        if (!is_dir('./upload/qrcode')) {  #创建目录
            mkdir('./upload/qrcode');
        }

        $logo = './upload/qrcode/qrcode_logo.jpg';  #准备好的logo图片


        if (!file_exists('./upload/qrcode/qrcode_logo.jpg')) {  #移动文件,防止权限不足
            copy('./upload/common/images/logo1.jpg', './upload/qrcode/qrcode_logo.jpg');
        }
        $res = $object->png($url, $file_url, $errorCorrectionLevel, $matrixPointSize, 1);
        if ($logo !== FALSE && file_exists($file_url) && file_exists($logo)) {
            $QR = imagecreatefromstring(file_get_contents($file_url));
            $logo = imagecreatefromstring(file_get_contents($logo));
            $QR_width = imagesx($QR);//二维码图片宽度
            $QR_height = imagesy($QR);//二维码图片高度
            $logo_width = imagesx($logo);//logo图片宽度
            $logo_height = imagesy($logo);//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);
        } else {
            return resultArray(0, '文件错误');
        }

        imagepng($QR, $file_url);  #重新生成的图片
        $file_url = substr($file_url, 1);
        return resultArray(1, 'success', $file_url);
上一篇下一篇

猜你喜欢

热点阅读