PHP生成二維碼 endroid/qr-code 擴充套件包
阿新 • • 發佈:2020-08-19
目錄
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 Endroid\QrCode\QrCode; use Endroid\QrCode\ErrorCorrectionLevel; use Endroid\QrCode\LabelAlignment; use Endroid\QrCode\Response\QrCodeResponse; // 掃描二維碼後跳轉的地址 $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大小後就可以正常識別二維碼了