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

安装SimpleQrCode扩展包

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

composer require simplesoftwareio/simple-qrcode 1.3.*

或者设置Composer安装SimpleQrCode扩展包

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

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

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

添加 Service Provider

// 在config/app.php 注册服务提供者:
SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class

添加 Aliases

// 在 config/app.php 添加 QrCode 门面:
'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class

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

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

<div >
{!! QrCode::size(200)->generate(Request::url()); !!}
<p>扫描我返回到原始页。</p>
</div>

基本使用说明:

使用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');  // 返回一个PNG图像
QrCode::format('eps'); // 返回一个eps图像
QrCode::format('svg'); // 返回一个svg图像

尺寸设置

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

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

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

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

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

使用backgroundColor()设置背景色:

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

边距设置:

QrCode::margin(100);

容错级别设置:

QrCode::errorCorrection("L");

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

 容错级别 说明
L 7% 的字节码恢复率.
M 15% 的字节码恢复率.
Q 25% 的字节码恢复率.
H 30% 的字节码恢复率.

容错级别越高,二维码里能存储的数据越少,详情见:(https://en.wikipedia.org/wiki/QR_code#Error_correction)

SimpleQrCode扩展包支持编码

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

return QrCode::errorCorrection('L')->size(200)->margin(2)->color(255,255,255)->backgroundColor(125,245,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图片的使用方式。

// QrCode::merge($filename, $percentage, $absolute);

//使用绝对路径的LOGO图片地址创建二维码,LOGO图片占整个二维码图片的30%.
return QrCode::format('png')->size(200)->merge(public_path().'/ceshi.png',.3,true)->encoding('UTF-8')->generate('LaravelAcademy',public_path('phpqrcodes/phpqrcode.png'));

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

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

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

QrCode::wiFi([
'encryption' => 'WPA/WEP',
'ssid' => '网络的SSID',
'password' => '网络的密码',
'hidden' => '是否是一个隐藏SSID的网络'
]);
//连接一个开放的网络
QrCode::wiFi([
'ssid' => '网络名称',
]);
//连接一个开放并隐藏的网络.
QrCode::wiFi([
'ssid' => '网络名称',
'hidden' => 'true'
]);
//连接一个加密的WIFI网络.
QrCode::wiFi([
'ssid' => '网络名称',
'encryption' => 'WPA',
'password' => '密码'
]);

在 Laravel 之外使用

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

use SimpleSoftwareIO\QrCode\BaconQrCodeGenerator;

$qrcode = new BaconQrCodeGenerator;
$qrcode->size(500)->generate('Welcome to LaravelAcademy!');

转载他处,若有侵权,联系删除

Laravel5中通过SimpleQrCode扩展包生成二维码实例的更多相关文章

  1. 【java】google的zxing架包生成二维码和读取二维码【可带文字和logo】

    承接RC4生成不重复字符串的需求之后,因为优惠码要方便用户使用的缘故,所以思来想去,觉得还是直接生成二维码给用户直接扫比较实用,也不用用户专门记录冗长的优惠码编号. ================= ...

  2. Java中使用google.zxing快捷生成二维码(附工具类源码)

    移动互联网时代,基于手机端的各种活动扫码和收付款码层出不穷:那我们如何在Java中生成自己想要的二维码呢?下面就来讲讲在Java开发中使用 google.zxing 生成二维码. 一般情况下,Java ...

  3. python学习 —— 使用QRCode包生成二维码

    我使用的是python3,最简单的方法就是使用QRCode,如果没有安装QRCode package,那么可以使用下面命令进行安装: pip3 install QRCode 然后,测试一下: from ...

  4. thinkphp5动态生成二维码实例总结

    thinkphp5关于动态生成二维码类库总结: 遇到的最大问题如下:我想大部分人也碰到过,所有觉得有必要总结下: thinkphp5提示找不到Qrcode类,可是自己明明都放置到了,vendor 目录 ...

  5. 在laravel中使用QrCode包生成二维码

    http://laravelacademy.org/post/2605.html 一切都是按照文档上的说明操作,没有问题

  6. js生成二维码实例(真实有效)

    js文件  qrcode.js   代码 /*from tccdn minify at 2014-6-4 14:59:43,file:/cn/c/c/qrcode.js*/ /** * @fileov ...

  7. js生成二维码实例

    <!DOCTYPE html><html><head>    <title></title>    <meta charset=&qu ...

  8. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  9. Android 把url生成二维码并贴到给定的底图上

    主要是用到了com.google.zxing jar包生成二维码的功能,这个jar包需要自己接下载 直接上代码 public static Bitmap CreateBinaryCodeImageBy ...

随机推荐

  1. JS DOM与BOM

    DOM知识点 [DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过js ...

  2. [Swift]LeetCode281. 之字形迭代器 $ Zigzag Iterator

    Given two 1d vectors, implement an iterator to return their elements alternately. For example, given ...

  3. Truncated incorrect DOUBLE value: 'd'的解决方法(jdbc)

    今天写jdbc中dao的增删改查时遇到了一个问题,花费了好长时间,不过还好,有我峰哥出头,问题解决了,在这做个分享,对峰哥表达一下感激之情 网上搜索到的对“Truncated incorrect DO ...

  4. Python—day18 dandom、shutil、shelve、系统标准流、logging

    一.dandom模块 (0, 1) 小数:random.random() [1, 10] 整数:random.randint(1, 10) [1, 10) 整数:random.randrange(1, ...

  5. HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

    前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 ...

  6. CSS,JavaScript知识点

    1.css重用                <style>            如果整个页面的宽度 > 900px时:            {                . ...

  7. Java基础7:关于Java类和包的那些事

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  8. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌图片:自己的图片控件

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  9. centos7下误执行chmod -R 777 /后的权限修复方法

    今天由于权限问题zz一般把/usr/bin和/usr/lib两个目录用chmod -R 777执行了一遍,结果各种问题出现,su root就报su:鉴定故障的错误.然后上网找教程很多都要求在root权 ...

  10. 补习系列(9)-springboot 定时器,你用对了吗

    目录 简介 一.应用启动任务 二.JDK 自带调度线程池 三.@Scheduled 定制 @Scheduled 线程池 四.@Async 定制 @Async 线程池 小结 简介 大多数的应用程序都离不 ...