qrcode模块基于 endroid/qr-code ,用于生成二维码,使用简单。
控制器直接输出图片
$data = ev(' qrcode String', '#39;);
return response($data, 200, [
'Content-Type' => 'image/png'
]);
输出base64格式
//模板中使用
<img src="data:image/png;base64,{:ev('QrcodeBase64',%20'#39;)}" />
<img src="{:ev('QrcodeImage',%20'#39;)}" />
第三个参数支持 callable 类型, 可以在二维码中间添加logo,底部增加文字。
$img = ev('QrcodeImage', '#39;, function($writer, $qrcode, $classes) {
$labelClass = $classes['labelClass'];
$fontClass = $classes['fontClass'];
$fontPath = public_path() . DS . 'modules' . DS . 'test' . DS . 'fonts' . DS . 'noto_sans.otf';
$label = (new $labelClass('扫码访问YiAdmin', new $fontClass($fontPath, 16)))->setTextColor(new $classes['colorClass'](255, 255, 0));
$logo = (new $classes['logoClass'](public_path() . DS . ' static ' . DS . 'images' . DS . 'excel.png', null, null, true))->setResizeToWidth(50);
return $writer->write($qrcode, $logo, $label);
});