1. 程式人生 > 實用技巧 >PHP生成二維碼 endroid/qr-code 擴充套件包

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