<?php
namespace app\index\controller;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\QrCode as QrCodeExt;
use think\Controller;
/**
* php713
* php.ini扩展
* extension=gd
* extension=iconv
* composer require endroid/qr-code
* https://github.com/endroid/qr-code
*/
class Qrcode extends Controller
{
/**
* 生成二维码
* @param string $text [字符]
* @param [type] $is_save [是否保存]
* @param [type] $pid [唯一标识符]
* @return [type] [description]
*/
public function make_arcode($text = 'https://packagist.org/packages/endroid/qr-code?pid=1000', $is_save = false, $pid = 0)
{
$qrCode = new QrCodeExt($text);
$qrCode->setSize(300);
// Set advanced options
$qrCode->setWriterByName('png');
$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('Scan the code', 16, __DIR__ . '/../assets/fonts/noto_sans.otf', LabelAlignment::CENTER);
// $qrCode->setLogoPath(__DIR__ . '/../assets/images/symfony.png');
$qrCode->setLogoSize(150, 200);
$qrCode->setRoundBlockSize(true);
$qrCode->setValidateResult(false);
$qrCode->setWriterOptions(['exclude_xml_declaration' => true]);
// Directly output the QR code
header('Content-Type: ' . $qrCode->getContentType());
if ($is_save) {
// Save it to a file
$qrCode->writeFile(ROOT_PATH . 'runtime/qrcode/qrcode' . $pid . '.png');
}
die($qrCode->writeString());
}
}
使用Endroid\QrCode生成二维码
猜你喜欢
转载自blog.csdn.net/HD2killers/article/details/83180660
今日推荐
周排行