PHP生成中間帶LOGO圖像的二維碼

安裝

使用Composer來安裝這個庫。

composer require endroid/qrcode

基本用法

簡單幾行代碼,就能夠生成一個普通的二維碼:php

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/RmZekiVcomposer

相關文章
相關標籤/搜索