美文网首页Laravel学习
Laravel 生成二维码插件使用

Laravel 生成二维码插件使用

作者: Mr_Z_Heng | 来源:发表于2020-05-19 15:24 被阅读0次

    导语:

        喜欢laravel的开发者都知道,laravel的特点就是可使用的三方扩展众多,参与开发的不仅仅是官方开发团队,更多的是它的爱好者们。这里记录一下他的二维码生成的三方扩展包的使用。

    一、扩展包的安装引入:

    使用 composer require simplesoftwareio/simple-qrcode 1.3.* 安装

    二、注册服务提供者和添加门面别名:
    在 config/app.php 中注册服务提供者 (放到provider中)

    SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,

    继续在 config/app.php 中添加门面(放入aliases中)

     'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class

    经过以上两个步骤,在 laravel 中就可以使用 QrCode 来生成二维码了。实际中通过 composer 加载的包都是以上步骤,门面可以选择不添加。

    三、使用QrCode输出二维码:

    定义好路由之后,测试下。可以使用门面,也可以实例化,都是一样的。完整代码查看GitHub

    直接生成二维码

    QrCode::generate(date('Y-m-d H:i:s'));

    这里生成的是svg格式的二维码,可以直接PHP 用echo输出 也可以赋值给前端的参数输出到页面中,此时输出后你会发现尺寸太小了,那么可以用内置的方法size设置尺寸,例如:

    QrCode::size(200)->generate(date('Y-m-d H:i:s'));

    同样也可以在视图中直接显示二维码:

    <div class="visible-print text-center">

        {!! QrCode::size(100)->generate(Request::url()); !!}

        <p>Scan me to return to the original page.</p>

    </div>

    以上使用的方式均为动态生成二维码的方式,下面说一下生成静态码(图片文件)的方式

    $qr->generate('hello world', $path.'qr1.svg');

    第二个参数就是图片保存的路径,默认格式为svg,如需其他格式可以使用下边所用的format方法修改:

     $qr->format('png')->generate('hello world', $path.'qr2.png');

    同时还有一些其他方法,例如修改颜色(color)、边距(margin)、背景色(backgroundColor)、编码方式(encoding)等:

    QrCode::format('png')->size(100)->color(255,0,255)->backgroundColor(255,255,0)->margin(100)->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));

    如果需要在二维码中心位置设置一个头像图片,可以试用merge方法进行图片的合成,第一个参数为头像图片,第二个为百分比

    QrCode::format('png')->size(200)->merge('/public/qrcodes/laravel.png',.15)->generate('LaravelAcademy',public_path('qrcodes/qrcode.png'));

    二维码+背景图生成海报图

            $bg = imagecreatefrompng(public_path('qrcodes/bg.png'));    //这里是背景图的相对路径

            $qrcode = imagecreatefrompng(public_path('qrcodes/abc.png'));    //这里是上边产生的二维码

            imagecopyresampled($bg, $qrcode, 283, 1061, 0, 0, 185, 185, imagesx($qrcode), imagesy($qrcode));    //两个图片合成

            参数解析:$bg:背景图; $qrcode:二维码;

            283:二维码的横坐标    1061:二维码的纵坐标    

          (185,185):二维码在背景图上所占用的宽度和高度     

            imagesx($qrcode) 二维码显示的宽度  imagesy($qrcode)二维码显示的高度

            imagepng($bg, public_path('haibao/' . strtoupper($data['openid']) . '.png'));    //保存海报文件

    相关文章

      网友评论

        本文标题:Laravel 生成二维码插件使用

        本文链接:https://www.haomeiwen.com/subject/mzkbohtx.html