PHP生成中间带LOGO图像的二维码

版权声明:转载请注明原创地址 https://blog.csdn.net/u013032788/article/details/84987541

安装

使用Composer来安装这个库。

composer require endroid/qrcode

基本用法

简单几行代码,就可以生成一个普通的二维码:

    require_once('vendor/autoload.php');
    use Endroid\QrCode\QrCode;
    $qrCode = new QrCode('Thinkphp欢迎您!');
    header('Content-Type: '.$qrCode->getContentType());
    echo $qrCode->writeString();
    高级用法
    QrCode提供了许多方法参数设置,可以满足各种需求场景。比如需要生成中间带logo的二维码,需要保存二维码图片等。请看以下代码:
    require_once('vendor/autoload.php');
    use Endroid\QrCode\ErrorCorrectionLevel;
    use Endroid\QrCode\LabelAlignment;
    use Endroid\QrCode\QrCode;
    use Symfony\Component\HttpFoundation\Response;
    // Create a basic QR code
    $qrCode = new QrCode('Life is too short to be generating QR codes');
    $qrCode->setSize(300);
    // Set advanced options
    $qrCode
        ->setWriterByName('png')
        ->setMargin(10)
        ->setSize(200)
        ->setEncoding('UTF-8')
        ->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH)
        ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0])
        ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255])
        ->setLabel('手机扫一扫', 12)
        ->setLogoPath('logo.png')
        ->setLogoWidth(64)
        ->setValidateResult(false)
    ;
    // Directly output the QR code
    header('Content-Type: '.$qrCode->getContentType());
    echo $qrCode->writeString();
    // Save it to a file
    //$qrCode->writeFile(__DIR__.'/qrcode.png');
    // Create a response object
    $response = new Response($qrCode->writeString(), Response::HTTP_OK, ['Content-Type' => $qrCode->getContentType()]);
    运行以上代码,你会发现生成了一个中间有logo小图片的二维码,以上代码中:
    setSize():设置二维码图片的尺寸,数字整型,默认长宽是300px的图片。
    setErrorCorrectionLevel():设置纠错级别,可以是LOW,MEDIUM,QUARTILE,HIGH
    setForegroundColor():设置前置色,rgb,默认黑色
    setBackgroundColor():设置背景色,rgb,默认白色
    setLabel():设置文字说明
    setLogoPath():设置中间logo路径地址
    setLogoWidth():设置logo宽度大小,数字

更多THinkPHP源码请访问:http://t.cn/RmZekiV

猜你喜欢

转载自blog.csdn.net/u013032788/article/details/84987541