[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コードの画像がダウンロードされることを確認しましょう。