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!');
转载他处,若有侵权,联系删除
上一篇: php 获取今日、昨日、上周、本月的起始时间戳和结束时间
下一篇: 一顿饭一头羊,你说怎么舍得下口啊