Laravel5中通过SimpleQrCode扩展包生成二维码实例
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扩展包生成二维码实例的更多相关文章
- 【java】google的zxing架包生成二维码和读取二维码【可带文字和logo】
承接RC4生成不重复字符串的需求之后,因为优惠码要方便用户使用的缘故,所以思来想去,觉得还是直接生成二维码给用户直接扫比较实用,也不用用户专门记录冗长的优惠码编号. ================= ...
- Java中使用google.zxing快捷生成二维码(附工具类源码)
移动互联网时代,基于手机端的各种活动扫码和收付款码层出不穷:那我们如何在Java中生成自己想要的二维码呢?下面就来讲讲在Java开发中使用 google.zxing 生成二维码. 一般情况下,Java ...
- python学习 —— 使用QRCode包生成二维码
我使用的是python3,最简单的方法就是使用QRCode,如果没有安装QRCode package,那么可以使用下面命令进行安装: pip3 install QRCode 然后,测试一下: from ...
- thinkphp5动态生成二维码实例总结
thinkphp5关于动态生成二维码类库总结: 遇到的最大问题如下:我想大部分人也碰到过,所有觉得有必要总结下: thinkphp5提示找不到Qrcode类,可是自己明明都放置到了,vendor 目录 ...
- 在laravel中使用QrCode包生成二维码
http://laravelacademy.org/post/2605.html 一切都是按照文档上的说明操作,没有问题
- js生成二维码实例(真实有效)
js文件 qrcode.js 代码 /*from tccdn minify at 2014-6-4 14:59:43,file:/cn/c/c/qrcode.js*/ /** * @fileov ...
- js生成二维码实例
<!DOCTYPE html><html><head> <title></title> <meta charset=&qu ...
- 在java中生成二维码,并直接输出到jsp页面
在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...
- Android 把url生成二维码并贴到给定的底图上
主要是用到了com.google.zxing jar包生成二维码的功能,这个jar包需要自己接下载 直接上代码 public static Bitmap CreateBinaryCodeImageBy ...
随机推荐
- tomcat +jenkios
来源:https://www.cnblogs.com/edward2013/p/5269465.html 1. 安装JDK JDK下载地址: http://www.oracle.com/techne ...
- 网页开发--03(wampserver安装服务无法启动的问题)
一.安装wampserver 一路next,指定安装路径外,其它默认安装. 二.我遇到的问题 当任务图标绿色为正常启动状态,但是我的从打开一直是黄色,问题在于Apache和MySql 1)Apache ...
- 依赖注入[5]: 创建一个简易版的DI框架[下篇]
为了让读者朋友们能够对.NET Core DI框架的实现原理具有一个深刻而认识,我们采用与之类似的设计构架了一个名为Cat的DI框架.在<依赖注入[4]: 创建一个简易版的DI框架[上篇]> ...
- 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...
- 超全MyBatis动态SQL详解!( 看完SQL爽多了)
MyBatis 令人喜欢的一大特性就是动态 SQL. 在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的. MyBatis 动态 SQL 的出现, 解决了这个麻烦. My ...
- Ubuntu12.04下安ns-3.29及Ubuntu换源方法
目录 1.下载ns-3.29 2.安装gcc-4.9.2 3.编译.测试ns-3.29 第一种:更新,文章开头说的 第二种,更新源 主机型号:Ubuntu12.04 仿真环境版本:NS-3.29 安装 ...
- iOS——调试工具LLDB学习
一.前言 LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件.在日常的开发和调试过程中给开发人员带 ...
- VMware虚拟机安装Linux系统
许多新手连 Windows 的安装都不太熟悉,更别提 Linux 的安装了:即使安装成功了,也有可能破坏现有的 Windows 系统,比如导致硬盘数据丢失.Windows 无法开机等.所以一直以来,安 ...
- 使用vue-cli搭建vue项目
1.安装node环境,然后在命令行输入node -v 和npm -v 查看版本号 2.在正式开始项目之前我们先介绍一下vue-cli,vue-cli是一个脚手架工具,vue-cli是帮助我们写好vue ...
- 取代 FlashP2P,H5P2P 将成为 WebP2P 主流
5 月 19.20 日,行业精英齐聚的 WebRTCon 2018 在上海举办.又拍云 PrismCDN 项目负责人凌建发在大会做了<又拍云低延时的 WebP2P 直播实践>的精彩分享. ...