Laravel5中通过SimpleQrCode扩展包生成二维码实例

前端之家收集整理的这篇文章主要介绍了Laravel5中通过SimpleQrCode扩展包生成二维码实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

安装SimpleQrCode扩展包

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

composer simplesoftwareio/simple-qrcode 1.3.*

或者设置Composer安装SimpleQrCode扩展包

添加 QrCode 包添加到你的 composer.json 文件的 require 里:

"require":"simplesoftwareio/simple-qrcode": "1.3.*"

然后,运行 composer update,以上两种方式都可以安装配置SimpleQrCode扩展包

添加 Service Provider

PHP 注册服务提供者: SimpleSoftwareIO\QrCode\QrCodeServiceProvider::

添加 Aliases

PHP 添加 QrCode 门面: 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::

SimpleQrCode生成二维码在视图中打印

在打印页面添加的来源二维码.这里我们只需要在 PHPqrcode.blade.PHP 文件添加如下代码即可!

!! QrCode::size(200)->generate(Request::url()); !!

扫描我返回到原始页。

基本使用说明:

使用QrCode的Generator非常方便. 多数情况下只要这样,如果想要显示中文,需要使用如下方式指定编码

QrCode::encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); 内容是:“SimpleQrCode扩展包生成二维码测试!” 的二维码了.

生成二维码

Generate是用来创建二维码方法

QrCode::generate('Make me into a QrCode!'); 二维码必须使用此方法

Generate 默认返回一个 SVG 格式的图片文本. 你可以在Laravel 的 Blade 系统中把它显示到浏览器中,使用方式如下:

{!! QrCode::generate('Make me into a QrCode!'); !!}

generate 方法的第二个参数是指定要存储图片数据的文件地址.

QrCode::generate('Make me into a QrCode!',public_path('PHPqrcodes/PHPqrcode.svg'));

定义输出图片格式

QrCode Generator 默认输出SVG格式的图片

注意:format方法必须第一个被设置,其它的设置如: size, color, backgroundColor,和 margin 的设置必须在它的后边

支持 PNG,EPS,SVG 三种格式,设置方式如下:

QrCode::format('png'); QrCode::format('eps'); QrCode::format('svg');

尺寸设置

QrCode 的 Generator 默认返回可能最小像素单位的二维码。可以使用 size 方法去设置它的尺寸,下方是设置像素尺寸的实例:

QrCode::size(200)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!');

颜色设置(注意改变颜色后,可能会导致某些设备难以识别)

颜色设置的格式必须是RBG格式. 设置方式如下:

QrCode::color(255,255)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!');

使用backgroundColor()设置背景色:

QrCode::size(200)->color(255,255,255)->backgroundColor(125,245,0)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!');

边距设置:

QrCode::margin(100);

容错级别设置:

QrCode::errorCorrection("L");

下方是errorCorrection方法支持的容错级别设置

<table>
<tr class="ue-table-interlace-color-single firstRow">
<td valign="top" width="348"> 容错级别</td>
<td valign="top" width="348">说明</td>
</tr>
<tr class="ue-table-interlace-color-double">
<td valign="top" width="348">L</td>
<td valign="top" width="348">7% 的字节码恢复率.</td>
</tr>
<tr class="ue-table-interlace-color-single">
<td valign="top" width="348">M</td>
<td valign="top" width="348">15% 的字节码恢复率.</td>
</tr>
<tr class="ue-table-interlace-color-double">
<td valign="top" width="348">Q</td>
<td valign="top" width="348">25% 的字节码恢复率.</td>
</tr>
<tr class="ue-table-interlace-color-single">
<td valign="top" width="348">H</td>
<td valign="top" width="348">30% 的字节码恢复率.</td>
</tr>

容错级别越高,二维码里能存储的数据越少,详情见:(

SimpleQrCode扩展包支持编码

QrCode 创建二维码时可以使用不同的编码. 默认使用 ISO-8859-1. 详情见 character encoding 你可以使用以下的任一种编码:

<div class="cnblogs_code">

 QrCode::errorCorrection('L')->size(200)->margin(2)->color(255,0)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!');

支持编码列表

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

若抛出 Could not encode content to ISO-8859-1 意味着使用了错误的编码。建议你使用 UTF-8

logo或者头像放到二维码图片

merge 方法可以让QrCode为生成结果加上logo图片. 下方是常见的为二维码logo图片的使用方式。

//使用绝对路径logo图片地址创建二维码,logo图片占整个二维码图片的30%.
<span style="color: #0000ff">return
QrCode::format('png')->size(200)->merge(public_path().'/ceshi.png',.3,<span style="color: #0000ff">true)->encoding('UTF-8')->generate('LaravelAcademy',public_path('PHPqrcodes/PHPqrcode.png'));

merge 方法当前只支持PNG格式的图片 默认使用相对于应用程序的根路径,把第三个参数设置为 true 就能切换到使用绝对路径

WIFI(WIFI扫描目前不支持在苹果产品。)

这个辅助方法能创建扫一下能连接WIFI的二维码

<div class="cnblogs_code">

QrCode::'encryption' => 'WPA/WEP','ssid' => '网络的SSID','password' => '网络的密码','hidden' => '是否是一个隐藏SSID的网络'
QrCode::'ssid' => '网络名称',
QrCode::'ssid' => '网络名称','hidden' => 'true'
QrCode::'ssid' => '网络名称','encryption' => 'WPA','password' => '密码'

在 Laravel 之外使用

你还可以在Laravel框架之外调用,只需要实例化 BaconQrCodeGenerator 类.

<span style="color: #800080">$qrcode = <span style="color: #0000ff">new<span style="color: #000000"> BaconQrCodeGenerator;
<span style="color: #800080">$qrcode->size(500)->generate('Welcome to LaravelAcademy!');

删除

原文链接:https://www.f2er.com/laravel/69650.html

猜你在找的Laravel相关文章