thinkphp5.1生成二维码并添加背景图 phpqrcode

本文介绍了如何在ThinkPHP5.1框架中安装和使用phpqrcode库来生成二维码。首先从GitHub下载phpqrcode并解压到指定目录,然后在common.php中引入库文件并定义生成二维码的函数。该函数支持设置二维码的链接、大小、背景图片等参数,并能生成带背景的二维码图片。
摘要由CSDN通过智能技术生成

1.在thinkphp5.1中安装phpqrcode

在github下载phpqrcode
https://github.com/t0k4rt/phpqrcode
并把phpqrcode解压到thinkphp目录的 extend/phpqrcode 中

2.使用

在common.php中使用

/**
 * 生成二维码
 * @param string $url 要生成的路径
 * @param int $code 生成图片的名称
 * @param string $urlImgBg 生成的背景图片
 * @param int $x 生成的 左到右的距离
 * @param int $y 生成的上到下的距离
 * @param string $level
 * @param int $size 生成二维码大小
 * @return string
 */
function qrcode($url='https://www.baidu.com',$code = 111, $urlImgBg = './uploads/code/MG293.png', $x = 6, $y = 1340, $level = 'L', $size = 6){
    // 导入Phpqrcode插件文件
    require_once EXTEND_PATH.'phpqrcode/phpqrcode.php';
    // 容错级别
    $errorCorrectionLevel = $level;
    // 生成图片大小
    $matrixPointSize = intval($size);
    // 生成二维码图片
    $object = new \QRcode();
    // 这个一定要加上,清除缓冲区
    ob_end_clean();
    // 第二个参数false的意思是不生成图片文件,如果你写上‘picture.png’则会在根目录下生成一个png格式的图片文件
    $path = './uploads/code/';
    $QR =$QRB = $path.$code.".png";
    $object::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1);
    //添加背景图片合成
    $dst_path = $urlImgBg;//背景图片路径
    $src_path = $QR;//覆盖图
//        $src_path = $path.$user_id.".png";//覆盖图
    //创建图片的实例
    $dst = imagecreatefromstring(file_get_contents($dst_path));
    $src = imagecreatefromstring(file_get_contents($src_path));
    //获取覆盖图图片的宽高
    list($src_w, $src_h) = getimagesize($src_path);
    //将覆盖图复制到目标图片上,最后个参数100是设置透明度(100是不透明),这里实现不透明效果
    imagecopymerge($dst, $src, $x, $y, 0, 0, $src_w, $src_h, 100);    //位置可以自己调试
    //        @unlink($QIMG); //删除二维码与logo的合成图片
    @unlink($QRB);  //删除服务器上二维码图片
//    header("Content-type: image/png");
    imagepng($dst,'./uploads/code/'.$code.'.png');//根据需要生成相应的图片
//    imagejpeg($dst,'../uploads/user/'.$uid.'.jpg');
    imagedestroy($dst);
    imagedestroy($src);
    return '/uploads/code/'.$code.'.png';
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值