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 文件里添加如下代码即可!
- {!! 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’); // 返回一个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!’);
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!