tuncaybahadir / quar
A simple QR Code generation tool for your projects with Laravel 10, 11, 12 versions, php 8.3 and 8.4
Installs: 3 311
Dependents: 0
Suggesters: 0
Security: 0
Stars: 21
Watchers: 1
Forks: 2
Open Issues: 0
Requires
- php: >=8.3
- ext-gd: *
- bacon/bacon-qr-code: ^3.0
Requires (Dev)
- laravel/pint: ^1.22
- roave/security-advisories: dev-latest
Suggests
- ext-imagick: Allows the generation of PNG QrCodes.
- illuminate/support: Allows for use within Laravel.
README
Introduction
To generate Qr Code with Laravel, Quar references packages provided by [Bacon/BaconQrCode] (https://github.com/Bacon/BaconQrCode) and [simplesoftwareio/simple-qrcode] (https://github.com/SimpleSoftwareIO/simple-qrcode). The Quar package is a new qr code generation package with compatibility for Laravel 10, Laravel 11, Laravel 12 and Php 8.3, Php 8.4.
Minimum Requirements
- PHP 8.3+
- 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 Typerounded
circle
ring
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 Patterndot
round
star
vertigo
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
vertical
horizontal
diagonal
inverse_diagonal
radial
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:
Authors
Contributing
Pull requests and issues are more than welcome.