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 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大小后就可以正常識別二維碼了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM