73 lines
2.2 KiB
PHP
73 lines
2.2 KiB
PHP
<?php
|
|
/*
|
|
* @Author: TaoLer <alipay_tao@qq.com>
|
|
* @Date: 2022-05-27 20:57:43
|
|
* @LastEditTime: 2022-05-28 09:33:43
|
|
* @LastEditors: TaoLer
|
|
* @Description: 搜索引擎SEO优化设置
|
|
* @FilePath: \TaoLer\app\common\lib\QrCode.php
|
|
* Copyright (c) 2020~2022 https://www.aieok.com All rights reserved.
|
|
*/
|
|
declare (strict_types = 1);
|
|
|
|
namespace app\common\lib;
|
|
|
|
use Endroid\QrCode\Builder\Builder;
|
|
use Endroid\QrCode\Encoding\Encoding;
|
|
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
|
|
use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
|
|
use Endroid\QrCode\Label\Font\NotoSans;
|
|
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
|
|
use Endroid\QrCode\Writer\PngWriter;
|
|
|
|
class QrCode
|
|
{
|
|
/**
|
|
* 生成二维码
|
|
*
|
|
* @param string $data
|
|
* @param string $labText
|
|
* @param string $logoPath
|
|
* @return string 返回图片src
|
|
*/
|
|
public function getQrcode(string $data, $labText = '', $logoPath = ''): string
|
|
{
|
|
//
|
|
if(empty($logoPath)) {
|
|
$result = Builder::create()
|
|
->writer(new PngWriter())
|
|
->writerOptions([])
|
|
->data($data)
|
|
->encoding(new Encoding('UTF-8'))
|
|
->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
|
|
->size(300)
|
|
->margin(10)
|
|
->roundBlockSizeMode(new RoundBlockSizeModeMargin())
|
|
->labelText($labText)
|
|
->labelFont(new NotoSans(20))
|
|
->labelAlignment(new LabelAlignmentCenter())
|
|
->build();
|
|
} else {
|
|
$result = Builder::create()
|
|
->writer(new PngWriter())
|
|
->writerOptions([])
|
|
->data($data)
|
|
->encoding(new Encoding('UTF-8'))
|
|
->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
|
|
->size(300)
|
|
->margin(10)
|
|
->roundBlockSizeMode(new RoundBlockSizeModeMargin())
|
|
->logoPath($logoPath)
|
|
->labelText($labText)
|
|
->labelFont(new NotoSans(20))
|
|
->labelAlignment(new LabelAlignmentCenter())
|
|
->build();
|
|
}
|
|
|
|
header('Content-Type: ' . $result->getMimeType());
|
|
//$result->getString();
|
|
$imgsrc = $result->getDataUri();
|
|
return $imgsrc;
|
|
}
|
|
}
|