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大小后就可以正常识别二维码了

posted @ 2020-08-19 19:20  辰风沐阳  阅读(996)  评论(0编辑  收藏  举报