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

正文开始

<p>http://blog.csdn.net/u012767761/article/details/73742054</p><p><br /></p><p></p><p style="margin-top:0px; margin-bottom:10px">Simple Qrcode是基于强大的Bacon/BaconQrCode库开发的针对Laravel框架的封装版本,用于在Laravel中为生成二维码提供接口。</p><p style="margin-top:0px; margin-bottom:10px">安装SimpleQrCode扩展包</p><p style="margin-top:0px; margin-bottom:10px">在项目根目录下使用如下命令安装依赖包:</p><p></p><pre> composer require simplesoftwareio/simple-qrcode 1.3.* </pre> <p></p><p style="margin-top:0px; margin-bottom:10px">或者设置Composer安装SimpleQrCode扩展包</p><p style="margin-top:0px; margin-bottom:10px">添加 QrCode 包添加到你的 composer.json 文件的 require 里:</p><pre> "require": { "simplesoftwareio/simple-qrcode": "1.3.*" } </pre> 然后,运行 composer update,以上两种方式都可以安装配置SimpleQrCode扩展包<p style="margin-top:0px; margin-bottom:10px">添加 Service Provider</p><pre> // 在config/app.php 注册服务提供者: SimpleSoftwareIOQrCodeQrCodeServiceProvider::class </pre> 添加 Aliases<pre> // 在 config/app.php 添加 QrCode 门面: 'QrCode' => SimpleSoftwareIOQrCodeFacadesQrCode::class </pre>  <p style="margin-top:0px; margin-bottom:10px">SimpleQrCode生成二维码在视图中打印</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">在打印页面添加的来源二维码.这里我们只需要在 phpqrcode.blade.php 文件里添加如下代码即可!<br style="" /></p><pre> <div > {!! QrCode::size(200)->generate(Request::url()); !!} <p>扫描我返回到原始页。</p> </div> </pre><p> SimpleQrCode扩展包生成二维码</p><p></p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">基本使用说明:</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">使用QrCode的Generator非常方便. 多数情况下只要这样,如果想要显示中文,需要使用如下方式指定编码<br style="" /></p><pre> QrCode::encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); // 这就能创建一个内容是:“SimpleQrCode扩展包生成二维码测试!” 的二维码了. </pre> <p style="margin-top:0px; margin-bottom:10px; text-indent:0em">生成二维码:</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">Generate是用来创建二维码的方法</p><pre> QrCode::generate('Make me into a QrCode!'); // 注意:要创建二维码必须使用此方法 </pre> Generate 默认返回一个 SVG 格式的图片文本. 你可以在Laravel 的 Blade 系统中把它显示到浏览器中,使用方式如下:<pre> {!! QrCode::generate('Make me into a QrCode!'); !!} </pre> generate 方法的第二个参数是指定要存储图片数据的文件地址.<pre> QrCode::generate('Make me into a QrCode!', public_path('phpqrcodes/phpqrcode.svg')); </pre> <p style="margin-top:0px; margin-bottom:10px; text-indent:0em">自定义输出图片格式</p><p style="margin-top:0px; margin-bottom:10px">QrCode Generator 默认输出SVG格式的图片</p><p style="margin-top:0px; margin-bottom:10px">注意:format方法必须第一个被设置, 其它的设置如: size, color, backgroundColor, 和 margin 的设置必须在它的后边</p><p style="margin-top:0px; margin-bottom:10px">支持 PNG,EPS,SVG 三种格式,设置方式如下:</p><pre> QrCode::format('png'); // 返回一个PNG图像 QrCode::format('eps'); // 返回一个eps图像 QrCode::format('svg'); // 返回一个svg图像 </pre> <p style="margin-top:0px; margin-bottom:10px">尺寸设置<br style="" /></p><p style="margin-top:0px; margin-bottom:10px">QrCode 的 Generator 默认返回可能最小像素单位的二维码。可以使用 size 方法去设置它的尺寸,下方是设置像素尺寸的实例:</p><pre> return QrCode::size(200)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); </pre> <p style="margin-top:0px; margin-bottom:10px">颜色设置(注意改变颜色后,可能会导致某些设备难以识别)</p><p style="margin-top:0px; margin-bottom:10px">颜色设置的格式必须是RBG格式. 设置方式如下:</p><pre> QrCode::color(255,0,255)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); </pre> 使用backgroundColor()设置背景色:<pre> return QrCode::size(200)->color(255,255,255)->backgroundColor(125,245,0)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); </pre> 边距设置:<pre>QrCode::margin(100); </pre> 容错级别设置:<pre> QrCode::errorCorrection("L"); </pre> <p style="margin-top:0px; margin-bottom:10px">下方是errorCorrection方法支持的容错级别设置<br style="" /></p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em"><br style="" /></p> 容错级别说明L7% 的字节码恢复率.M15% 的字节码恢复率.Q25% 的字节码恢复率.H30% 的字节码恢复率.<p style="margin-top:0px; margin-bottom:10px; text-indent:0em">容错级别越高,二维码里能存储的数据越少,详情见:(<a target="_blank" href="https://en.wikipedia.org/wiki/QR_code#Error_correction%EF%BC%89" style="color:rgb(66,139,202); text-decoration:none; background:transparent">https://en.wikipedia.org/wiki/QR_code#Error_correction)</a></p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">SimpleQrCode扩展包支持编码</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">QrCode 创建二维码时可以使用不同的编码. 默认使用 ISO-8859-1. 详情见 character encoding 你可以使用以下的任一种编码:</p><pre> return QrCode::errorCorrection('L')->size(200)->margin(2)->color(255,255,255)->backgroundColor(125,245,0)->encoding('UTF-8')->generate('SimpleQrCode扩展包生成二维码测试!'); </pre> <p style="margin-top:0px; margin-bottom:10px; text-indent:0em">支持编码列表</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em"><br style="" /></p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-1</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-2</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-3</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-4</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-5</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-6</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-7</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-8</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-9</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-10</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-11</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-12</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-13</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-14</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-15</p><p style="margin-top:0px; margin-bottom:10px">ISO-8859-16</p><p style="margin-top:0px; margin-bottom:10px">SHIFT-JIS</p><p style="margin-top:0px; margin-bottom:10px">WINDOWS-1250</p><p style="margin-top:0px; margin-bottom:10px">WINDOWS-1251</p><p style="margin-top:0px; margin-bottom:10px">WINDOWS-1252</p><p style="margin-top:0px; margin-bottom:10px">WINDOWS-1256</p><p style="margin-top:0px; margin-bottom:10px">UTF-16BE</p><p style="margin-top:0px; margin-bottom:10px">UTF-8</p><p style="margin-top:0px; margin-bottom:10px">ASCII</p><p style="margin-top:0px; margin-bottom:10px">GBK</p><p style="margin-top:0px; margin-bottom:10px">EUC-KR</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em"><br style="" /></p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">若抛出 Could not encode content to ISO-8859-1 意味着使用了错误的编码。建议你使用 UTF-8</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">Logo或者头像放到二维码图片中</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">merge 方法可以让QrCode为生成结果加上LOGO图片. 下方是常见的为二维码加LOGO图片的使用方式。</p><pre> // 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')); </pre> <p style="margin-top:0px; margin-bottom:10px; text-indent:0em">merge 方法当前只支持PNG格式的图片 默认使用相对于应用程序的根路径,把第三个参数设置为 true 就能切换到使用绝对路径</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">WIFI(WIFI扫描目前不支持在苹果产品。)</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">这个辅助方法能创建扫一下能连接WIFI的二维码</p><pre> 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' => '密码' ]); </pre> <p style="margin-top:0px; margin-bottom:10px; text-indent:0em">在 Laravel 之外使用</p><p style="margin-top:0px; margin-bottom:10px; text-indent:0em">你还可以在Laravel框架之外调用,只需要实例化 BaconQrCodeGenerator 类.<br style="" /></p><pre> use SimpleSoftwareIOQrCodeBaconQrCodeGenerator; $qrcode = new BaconQrCodeGenerator; $qrcode->size(500)->generate('Welcome to LaravelAcademy!'); </pre> <br />

正文结束

[ Laravel 5.2 文档 ] 基础 —— HTTP 路由 一款基于 Laravel 5.1 和 Vue.js 的项目管理系统 —— Ribbbon