* @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; } }