首页 > 其他 > 详细

在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解

时间:2020-11-29 23:07:49      阅读:49      评论:0      收藏:0      [点我收藏+]

1、简介

Simple Qrcode 是 Bacon/BaconQrCode 针对 Laravel 框架的封装版本,用于在 Laravel 中为生成二维码提供接口。

2、安装&配置

在项目根目录下使用如下命令安装依赖包:

composer require simplesoftwareio/simple-qrcode 1.3.*

在 config/app.php 注册服务提供者:

SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class

同样在 config/app.php 添加 QrCode 门面:

‘QrCode‘ => SimpleSoftwareIO\QrCode\Facades\QrCode::class

3、快速上手

在视图中打印

<div class="visible-print text-center">
    {!! QrCode::size(100)->generate(Request::url()); !!}
    <p>Scan me to return to the original page.</p>
</div>

嵌入到邮件内容

<img src="{!!$message->embedData(QrCode::format(‘png‘)->generate(‘Embed me into an e-mail!‘), ‘QrCode.png‘, ‘image/png‘)!!}">

4、基本用法

基本使用

Qrcode 生成器用法很简单,最基本的语法如下:

QrCode::generate(‘Hello,LaravelAcademy!‘);

这将会生成一个二维码,用手机扫描该二维码将会跳转到一个显示“Hello,LaravelAcademy!”的页面。

如果想要显示中文,需要使用如下方式指定编码:

{!! QrCode::generate(‘Hello,LaravelAcademy!‘); !!}

此外,generate() 方法还可以接受第二个参数用于指定文件名以及保存路径:

if(!file_exists(public_path(‘qrcodes‘)))
    mkdir(public_path(‘qrcodes‘));
QrCode::generate(‘Hello,LaravelAcademy!‘, public_path(‘qrcodes/qrcode.svg‘));

这样生成的 SVG 文件会保存到 /public/qrcodes/qrcode.svg。

修改保存格式

前面我们说了,QrCode 默认生成 SVG 格式文件,当然,我们可以修改保存格式,目前 Simple QrCode 支持三种格式:PNG、SVG 和 RPS。要修改生成二维码图片格式,可以使用 format() 方法:

QrCode::format(‘png‘)->generate(‘Hello,LaravelAcademy!‘,public_path(‘qrcodes/qrcode.png‘));

这样会在 /public/qrcodes 目录下生成 qrcode.png 图片。要生成其它格式,将对应格式传入 format() 方法即可。

注:format() 方法必须在所有其它格式化方法之前调用,这些格式化方法包括 size、color、backgroundColor 和 margin。

修改二维码图片尺寸

QrCode 生成器默认返回最小尺寸二维码图片。如果要修改生成二维码图片尺寸,可以使用 size() 方法:

QrCode::format(‘png‘)->size(100)->generate(‘Hello,LaravelAcademy!‘,public_path(‘qrcodes/qrcode.png‘));

这样会生成一个宽高均为100像素的二维码图片。

修改颜色(前景色/背景色)

我们还可以通过 color() 方法来修改生成二维码图片的颜色,颜色参数以 RGB 格式表示:

QrCode::format(‘png‘)->size(100)->color(255,0,255)->generate(‘Hello,LaravelAcademy!‘,public_path(‘qrcodes/qrcode.png‘));

生成的二维码图片如下:
技术分享图片

此外,还可以使用 backgroundColor() 方法修改背景色:

QrCode::format(‘png‘)->size(100)->color(255,0,255)->backgroundColor(255,255,0)->generate(‘Hello,LaravelAcademy!‘,public_path(‘qrcodes/qrcode.png‘));

生成的二维码图片如下:
技术分享图片

修改边距

如果你想要修改二维码图片与最外层容器边框的距离,可以使用 margin() 方法:

QrCode::format(‘png‘)->size(100)->color(255,0,255)->backgroundColor(255,255,0)->margin(100)->generate(‘Hello,LaravelAcademy!‘,public_path(‘qrcodes/qrcode.png‘));

生成的二维码图片如下:

技术分享图片

支持编码

关于编码问题我们前面已经提到过,即使用 encoding() 方法设置当前编码,QrCode 默认编码为 ISO-8859-1,目前支持如下编码:

字符编码
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-11
ISO-8859-12
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
SHIFT-JIS
WINDOWS-1250
WINDOWS-1251
WINDOWS-1252
WINDOWS-1256
UTF-16BE
UTF-8
ASCII
GBK
EUC-KR

在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解

原文:https://www.cnblogs.com/caibaotimes/p/14057372.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!