• 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 注册服务提供者:
    SimpleSoftwareIOQrCodeQrCodeServiceProvider::class

    添加 Aliases

    // 在 config/app.php 添加 QrCode 门面:
    'QrCode' => SimpleSoftwareIOQrCodeFacadesQrCode::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 SimpleSoftwareIOQrCodeBaconQrCodeGenerator;
    
    $qrcode = new BaconQrCodeGenerator;
    $qrcode->size(500)->generate('Welcome to LaravelAcademy!');

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

  • 相关阅读:
    C# JavascriptSerializer与匿名对象打造Json的完美工具
    C# 跨线程访问或者设置UI线程控件的方法
    使用Windows Live发布博客到博客园
    Ubuntu搭建ssh连接(连接方式:桥接网卡、网络地址转换(NAT))
    SQLServer right函数 从右侧截取指定位数的字符串
    python+MySQL架构
    pip换源(更换软件镜像源)
    Ubuntu搭建mysql,Navicat Premium连接
    一起学习造轮子(三):从零开始写一个React-Redux
    一起学习造轮子(二):从零开始写一个Redux
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/10345982.html
Copyright © 2020-2023  润新知