quar maintained by tuncaybahadir
Qr Code Generator For Laravel
Introduction
To generate Qr Code with Laravel, Quar references packages provided by Bacon/BaconQrCode and simplesoftwareio/simple-qrcode. The Quar package is a new qr code generation package with compatibility for Laravel 10, Laravel 11, Laravel 12, Laravel 13 and Php 8.2, Php 8.3, Php 8.4, Php 8.5.

Minimum Requirements
- PHP 8.2+
- Laravel 10+
Installing
Use Composer to install it:
composer require tuncaybahadir/quar
Simple usage
use tbQuar\Facades\Quar;
$qr = Quar::generate('Quar package create qr code');
And use it in your blade template this way:
<div>
{{ $qr }}
</div>
Simple usage Response

Example of Setting Qr Code Size
use tbQuar\Facades\Quar;
$qr = Quar::size(61)
->generate('Quar package create qr code');
Qr Code Size Response

Example of Setting Qr Code Detection Markers
Available Markers Type
square: Default Marker Typeroundedcirclering
use tbQuar\Facades\Quar;
$qr = Quar::eye('rounded')
->generate('Quar package create qr code');
Qr Code Markers Response
Example of Setting Qr Code Body Pattern Style
Available Body Pattern
square: Default Patterndotroundstarvertigo
Attention : The maximum smoothness value for square, dot and round designs is 0.9 and the maximum smoothness value for star and vertigo designs is 0.5.
use tbQuar\Facades\Quar;
$qr = Quar::style('dot', 0.9)
->generate('Quar package create qr code');
Qr Code Body Pattern Style Response

Example of Setting Qr Code Gradient Coloring
Available Gradient Type
verticalhorizontaldiagonalinverse_diagonalradial
use tbQuar\Facades\Quar;
$qr = Quar::eye('rounded')
->size(161)
->gradient(20, 192, 241 , 164, 29, 52 , 'vertical')
->generate('Quar package create qr code');
Qr Code Gradient Coloring Response

Qr Code Coloring Markers Example 1
use tbQuar\Facades\Quar;
$qr = Quar::eye('square')
->eyeColor(0, 113, 6, 22, 113, 6, 22)
->eyeColor(1, 122, 185, 231, 122, 185, 231)
->eyeColor(2, 252, 184, 17)
->size(161)
->generate('Quar package create qr code');
Qr Code Coloring Markers Response 1

Qr Code Hex Code With Coloring Markers Example 2
use tbQuar\Facades\Quar;
$qr = Quar::eye('square')
->eyeColorFromHex('0', '#710616', '#710616')
->eyeColorFromHex('1', '#7ab9e7', '#7ab9e7')
->eyeColorFromHex('2', '#fcb811', '#fcb811')
->size(161)
->generate('Quar package create qr code');
Qr Code Hex Code With Coloring Markers Response 2

Qr Code Coloring Example 1
use tbQuar\Facades\Quar;
$qr = Quar::color(50, 168, 82)
->size(161)
->eye('circle')
->generate('Quar package create qr code');
Qr Code Coloring Response 1

Qr Code Hex Code With Coloring Example 2
use tbQuar\Facades\Quar;
$qr = Quar::color('#32a852')
->size(161)
->eye('circle')
->generate('Quar package create qr code');
Qr Code Hex Code With Coloring Response 2

Example Of Coloring Qr Code Background With Hex Code 1
use tbQuar\Facades\Quar;
$qr = Quar::color('#710616')
->backgroundColor('#7ab9e7')
->size(261)
->eye('circle')
->generate('Quar package create qr code');
Example Of Coloring Qr Code Background With Hex Code 1

Example Of Coloring The Background Of Qr Code 2
use tbQuar\Facades\Quar;
$qr = Quar::color(113, 6, 22)
->backgroundColor(122, 185, 231)
->size(261)
->eye('circle')
->generate('Quar package create qr code');
Sample Result Of Coloring The Background Of Qr Code Response 2

Qr Code And Markers Coloring Example
use tbQuar\Facades\Quar;
$qr = Quar::color(235, 12, 83)
->size(161)
->eye('rounded')
->eyeColor(0, 113, 6, 22, 113, 6, 22)
->eyeColor(1, 122, 185, 231, 122, 185, 231)
->eyeColor(2, 252, 184, 17)
->generate('Quar package create qr code');
Qr Code and Marker Coloring Response

Example of Saving Qr Code as a Png File
use tbQuar\Facades\Quar;
$qrCodeFileName = md5(random_int(0, 9999999).date('H:i:s d.m.Y')).'_qr_code';
$qrCodeData = 'Quar package create qr code';
$qrCodeDirectory = storage_path('app/public/qr-code-images/');
Quar::format('png')
->color(155, 155, 200)
->size(200)
->eye('rounded')
->generate($qrCodeData, $qrCodeDirectory.$qrCodeFileName.'.png');
$qrCode = url('storage/qr-code-images/'.$qrCodeFileName.'.png');
And use it in your blade template this way:
<div>
<img src="{{ $qrCode }}" />
</div>
Saving Qr Code as a File Response

Example of Compressing and Saving a Qr Code as a Png File
use tbQuar\Facades\Quar;
$qrCodeFileName = md5(random_int(0, 9999999).date('H:i:s d.m.Y')).'_qr_code';
$qrCodeData = 'Quar package create qr code';
$qrCodeDirectory = storage_path('app/public/qr-code-images/');
Quar::format('png')
->setPngCompression(50)
->color(155, 155, 200)
->size(200)
->eye('rounded')
->generate($qrCodeData, $qrCodeDirectory.$qrCodeFileName.'.png');
$qrCode = url('storage/qr-code-images/'.$qrCodeFileName.'.png');
Example of Adding Logo on QR Code
Attention !!! : Due to a bug in the BaconQrCode package, you must set the margin value to 1 or higher during logo insertion. Otherwise the qr code is generated incorrectly.
Example 1:
use tbQuar\Facades\Quar;
$qr = Quar::format('png')
->margin(1)
->merge(public_path('php.png'), .2, true)
->size(400)
->generate('Quar package create qr code');
return view('test', [
'qrCode' => base64_encode($qr),
]);
Example 2:
use tbQuar\Facades\Quar;
$qr = Quar::format('png')
->margin(1)
->eye('rounded')
->merge(public_path('php.png'), .3, true)
->size(200)
->gradient(100, 20, 5 , 7, 9, 12 , 'VERTICAL')
->generate('Quar package create qr code');
return view('test', [
'qrCode' => base64_encode($qr),
]);
And use it in your blade template this way:
<div>
<img src="data:image/png;base64,{{ $qrCode }}" />
</div>
Adding Logo on Qr Code Sample Code Result 1:

Adding Logo on Qr Code Sample Code Result 2:

Example of Adding Logo on QR Code with Laravel Conditionable Trait class
Example :
use tbQuar\Facades\Quar;
$qr = Quar::format('png')
->margin(1)
->when(($logo = config('app.company.logo')) && file_exists($logo))
->merge($logo, .25, absolute: true)
->size(400)
->generate('Quar package create qr code', $path);
return view('test', [
'qrCode' => base64_encode($qr),
]);
Adding Text Around a QR Code
Example :
use tbQuar\Facades\Quar;
$qr = Quar::size(300)
->withText('Quar Code Package')
->generate('Quar package create qr code');
Example Result :

Customizing the Text
Example :
use tbQuar\Facades\Quar;
$qr = Quar::size(300)
->withText('Quar Code Package')
->configureText(function($text) {
$text->setTextColor('#54ac6e')
->setFontSize(12)
->setPosition('top-right')
->setPadding(25)
->setBackgroundColor('#151521')
//->setFont('/path/to/font.ttf')
->setBackgroundOpacity(0.1);
})
->generate('Quar package create qr code');
Example Result :

Available Text Positions
top,bottom: Default Position,left,right,top-left,top-right,bottom-left,bottom-right,
Example :
use tbQuar\Facades\Quar;
$qr = Quar::size(300)
->withText('🇹🇷 Türkiye 🇹🇷')
->configureText(function($text) {
$text->setTextColor('#ce2026')
->setFontSize(30)
->setPosition('top')
->setBackgroundOpacity(0.1);
})
->generate('Quar package create qr code');
Example Result :

Authors
Contributing
Pull requests and issues are more than welcome.