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