命令
composer require endroid/qrcode
下的是4.4.1版本
<?php
namespace app\index\library;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;
class QrcodeSever
{
/**
* 生成二维码
* @param $content //需要写入的内容
* @param $url //跳转网址
* @return
*/
public static function getQrCode($url, $content)
{
$writer = new PngWriter();
$qrCode = QrCode::create($url)//跳转的url地址
->setEncoding(new Encoding('UTF-8'))
->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
->setSize(150)//大小
->setMargin(20)//边距
->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
->setForegroundColor(new Color(0, 0, 0))
->setBackgroundColor(new Color(255, 255, 255));
$logo = Logo::create(ROOT_PATH.'public/uploads/qrcode/logo.jpg')
->setResizeToWidth(5);
$label = Label::create($content)//二维码下面的文字
->setTextColor(new Color(0, 0, 0));
$result = $writer->write($qrCode, $logo, $label);
$result->getString();
$qrcode=date('Ymd',time()).mt_rand(111111,999999).'.png';//二维码文件名称
$result->saveToFile(ROOT_PATH.'public/uploads/qrcode/'.$qrcode);
$dataUri = $result->getDataUri();
return $dataUri;
}
}
返回的是图片的base64值,这个时候二维码已经成功保存