dominik-eller/laravel-qr-code

Generate QR Codes

Maintainers

Package info

github.com/dominik-eller/laravel-qr-code

pkg:composer/dominik-eller/laravel-qr-code

Fund package maintenance!

dominik-eller

Statistics

Installs: 810

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.3.0 2026-05-06 09:58 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package allows you to generate QR Codes.

Installation

You can install the package via composer:

composer require dominik-eller/laravel-qr-code

Usage

All QR codes are created via the QrCode facade. Call generate() to get a binary string, or toBase64() to get a data URI ready for use in an <img> tag.

URL

use Deller\QrCode\Facades\QrCode;

$qrCode = QrCode::create(‘url’)
    ->setUrl(‘https://example.com’)
    ->setSize(300)
    ->setColor([0, 0, 0])
    ->setBackgroundColor([255, 255, 255])
    ->setErrorCorrectionLevel(‘H’)
    ->generate();

Text

$qrCode = QrCode::create(‘text’)
    ->setText(‘Hello, World!’)
    ->setSize(300)
    ->generate();

E-Mail

$qrCode = QrCode::create(‘email’)
    ->setEmail(‘contact@example.com’)
    ->setSize(300)
    ->generate();

Opening the QR code encodes a mailto:contact@example.com link.

Phone number

$qrCode = QrCode::create(‘phone’)
    ->setPhoneNumber(‘+43123456789’)
    ->setSize(300)
    ->generate();

Opening the QR code encodes a tel:+43123456789 link.

Wi-Fi

WifiQrCode is not registered by default and must be added first:

use Deller\QrCode\Facades\QrCode;
use Deller\QrCode\Types\WifiQrCode;

QrCode::registerType(‘wifi’, WifiQrCode::class);

$qrCode = QrCode::create(‘wifi’)
    ->setSsid(‘MyNetwork’)
    ->setPassword(‘secret’)
    ->setEncryption(‘WPA’)   // WPA, WEP, or nopass
    ->setSize(300)
    ->generate();

Output formats

The default output format is PNG. Use setFormat() to switch to SVG or EPS:

$svg = QrCode::create(‘url’)
    ->setUrl(‘https://example.com’)
    ->setFormat(‘svg’)
    ->generate();

Base64 data URI

Use toBase64() to embed the QR code directly in HTML:

$dataUri = QrCode::create(‘url’)
    ->setUrl(‘https://example.com’)
    ->toBase64();

// <img src="{{ $dataUri }}">

Custom eye colors

The three finder-pattern squares ("eyes") can be colored independently:

$qrCode = QrCode::create(‘url’)
    ->setUrl(‘https://example.com’)
    ->setTopLeftEyeColor([255, 0, 0])
    ->setTopRightEyeColor([0, 0, 255])
    ->setBottomLeftEyeColor([0, 128, 0])
    ->generate();

Custom types

Register your own QR code type by extending QrCode and implementing getData():

use Deller\QrCode\QrCode as BaseQrCode;

class VCardQrCode extends BaseQrCode
{
    public function getData(): string
    {
        return "BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nEND:VCARD";
    }
}

QrCode::registerType(‘vcard’, VCardQrCode::class);

$qrCode = QrCode::create(‘vcard’)->generate();

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please report security vulnerabilities by email to me@dominik-eller.de instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.