bacon / bacon-qr-code
BaconQrCode is a QR code generator for PHP.
Installs: 107 636 306
Dependents: 275
Suggesters: 26
Security: 0
Stars: 1 882
Watchers: 33
Forks: 213
Open Issues: 17
Requires
- php: ^8.1
- ext-iconv: *
- dasprid/enum: ^1.0.3
Requires (Dev)
- phly/keep-a-changelog: ^2.12
- phpunit/phpunit: ^10.5.11 || 11.0.4
- spatie/phpunit-snapshot-assertions: ^5.1.5
- squizlabs/php_codesniffer: ^3.9
Suggests
- ext-imagick: to generate QR code images
README
Introduction
BaconQrCode is a port of QR code portion of the ZXing library. It currently only features the encoder part, but could later receive the decoder part as well.
As the Reed Solomon codec implementation of the ZXing library performs quite slow in PHP, it was exchanged with the implementation by Phil Karn.
Example usage
use BaconQrCode\Renderer\ImageRenderer; use BaconQrCode\Renderer\Image\ImagickImageBackEnd; use BaconQrCode\Renderer\RendererStyle\RendererStyle; use BaconQrCode\Writer; $renderer = new ImageRenderer( new RendererStyle(400), new ImagickImageBackEnd() ); $writer = new Writer($renderer); $writer->writeFile('Hello World!', 'qrcode.png');
Available image renderer back ends
BaconQrCode comes with multiple back ends for rendering images. Currently included are the following:
ImagickImageBackEnd
: renders raster images using the Imagick librarySvgImageBackEnd
: renders SVG files using XMLWriterEpsImageBackEnd
: renders EPS files
GDLib Renderer
GD library has so many limitations, that GD support is not added as backend, but as separated renderer.
Use GDLibRenderer
instead of ImageRenderer
. These are the limitations:
- Does not support gradient.
- Does not support any curves, so you QR code is always squared.
Example usage:
use BaconQrCode\Renderer\GDLibRenderer; use BaconQrCode\Writer; $renderer = new GDLibRenderer(400); $writer = new Writer($renderer); $writer->writeFile('Hello World!', 'qrcode.png');