Skywalker QR Code represents a high-performance and highly customizable QR code generator for PHP, maintained by Skywalker Labs. It is a port of the QR code portion of the ZXing library, featuring an optimized Reed Solomon codec implementation for PHP.
use Skywalker\QrCode\Renderer\ImageRenderer;
use Skywalker\QrCode\Renderer\Image\ImagickImageBackEnd;
use Skywalker\QrCode\Renderer\RendererStyle\RendererStyle;
use Skywalker\QrCode\Writer;
$renderer = new ImageRenderer(
new RendererStyle(400),
new ImagickImageBackEnd()
);
$writer = new Writer($renderer);
$writer->writeFile('Hello World!', 'qrcode.png');Skywalker QrCode 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
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 Skywalker\QrCode\Renderer\GDLibRenderer;
use Skywalker\QrCode\Writer;
$renderer = new GDLibRenderer(400);
$writer = new Writer($renderer);
$writer->writeFile('Hello World!', 'qrcode.png');To run unit tests, you need to have Node.js and the pixelmatch library installed. Running
npm install will install this for you.