[Laravel] QRコードの画像を作成してダウンロードする方法

スマートフォンの普及により、イベントやキャンペーンなどのURLの共有にはQRコードがよく使われるようになりました。画面上に表示するのはもちろんですが、画像としてDownloadしたい場合もあると思います。

Laravelを使えば簡単です。

パッケージのダウンロード

今回はwerneckbh/laravel-qr-codeを利用します。

GitHub - werneckbh/laravel-qr-code: QR Code Generator for PHP wrapper for Laravel

以下の通りcomposerでインストールしてください。

$ composer require werneckbh/laravel-qr-code

Laravel5.4以下の場合はconfig/app.phpへサービスプロバイダとエイリアスを登録します。

<?php

'providers' => [

    LaravelQRCode\Providers\QRCodeServiceProvider::class,

],

'aliases' => [

   'QRCode' => LaravelQRCode\Facades\QRCode::class,

]

QRコードダウンロード用のルーティング

routes/web.phpへ下記の用に追加します。

Route::get('qr-code', function() {
    return response()->streamDownload(function () {
        \QRCode::url('https://laravel.com/')
            ->setSize(10)
            ->setMargin(2)
            ->png();
    }, 'qr-code.png');
});

streamDownload()については、\Illuminate\Routing\ResponseFactoryを参照してください。

また、werneckbh/laravel-qr-codeではURL以外にも様々なQRコードが発行できます。

  • Calendar Event
  • Email Message
  • Phone
  • SMS
  • Text
  • URL
  • meCard
  • vCard v3
  • Wi-fi Network Settings

http://your-domain/qr-codeへアクセスするとQRコードの画像がダウンロードされることを確認しましょう。

© Xzxzyzyz