• PHP生成二维码 endroid/qr-code 扩展包


    1. 引入 endroid/qr-code 扩展包


    https://packagist.org/packages/endroid/qr-code

    composer require endroid/qr-code
    

    2. 使用示例


    <?php
    
    // composer require endroid/qr-code
    require 'vendor/autoload.php';
    
    use EndroidQrCodeQrCode;
    use EndroidQrCodeErrorCorrectionLevel;
    use EndroidQrCodeLabelAlignment;
    use EndroidQrCodeResponseQrCodeResponse;
    
    // 扫描二维码后跳转的地址
    $qrCode = new QrCode('https://www.itqaq.com');
    
    // 内容区域宽高,默认为300
    $qrCode->setSize(300);
    // 外边距大小,默认为10
    $qrCode->setMargin(10);
    // 设置编码
    $qrCode->setEncoding('UTF-8');
    // 设置容错等级
    $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH());
    // 设置二维码颜色,默认为黑色
    $qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);
    // 设置二维码背景色,默认为白色
    $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);
    // 设置二维码下方的文字
    $qrCode->setLabel('个人技术博客网站', 11, null, LabelAlignment::CENTER());
    
    ##### 二维码中的logo #####
    $qrCode->setLogoPath('logo.jpg');
    $qrCode->setLogoSize(100, 90);
    // $qrCode->setLogoWidth(100);
    // $qrCode->setLogoHeight(90);
    ##### 二维码中的logo / #####
    // 启用内置的验证读取器(默认情况下禁用)
    $qrCode->setValidateResult(false);
    
    ########## 二维码三种显示方式 ##########
    
    // 二维码输出在浏览器上
    // header('Content-Type: ' . $qrCode->getContentType());
    // echo $qrCode->writeString();
    
    // 二维码存在本地
    // $qrCode->writeFile('3.png');
    
    // 返回数据URI
    // data:image/png;base64,iVBORwxxx
    $dataUri = $qrCode->writeDataUri();
    echo '<img src="' . $dataUri . '">';
    

    3. 二维码中放入logo,无法识别二维码的问题


    闲着没事,测试二维码中放入logo时发现扫描二维码无法识别,经过反复调试得出结论:logo图片太大导出无法识别二维码

    适当缩小logo大小后就可以正常识别二维码了

  • 相关阅读:
    charles的完整使用
    优雅重启uwsgi的配置
    mysql数据库,创建只读用户
    无线技术
    Selenium
    Hexo博客美化之蝴蝶(butterfly)主题魔改
    什么是Hexo博客
    java实现链表反转
    你不知道的Java引用
    Jquery判断数组中是否包含某个元素$.inArray()
  • 原文地址:https://www.cnblogs.com/cfmy/p/13531272.html
Copyright © 2020-2023  润新知