Страница с примерами http://laravel.jobtools.ru/qrcode
Исходники: https://bitbucket.org/gerz/laravel.jobtools.ru/src/master/
QR-код — это машиночитаемый код, состоящий из массива черно-белых квадратов, который обычно используется для хранения URL-адресов или любой другой информации для чтения камерой на смартфоне. В этой статье мы рассмотрим как создавать различные типы QR-кодов в Laravel.
Будем использовать отличный пакет для Laravel simple-qrcode, который является оболочкой для BaconQrCode.
Устанавливаем пакет
Загружаем simple-qrcode в свой проект Laravel с помощью composer, запустив его в каталоге вашего проекта:
composer require simplesoftwareio/simple-qrcode
Пример использования
Вы можете быстро сгенерировать QR-код, который будет содержать заданную строку, используя метод QrCode::generate("Ваша строка")
Добавьте маршрут qr-code
в ваш файл маршрутов routes/web.php
Route::get('qr-code', function () { return QrCode::encoding('UTF-8')->size(500)->generate('Добро пожаловать на jobtools.ru'); });
Пример http://laravel.jobtools.ru/qr-code
Вы также можете использовать генерацию кодов в шаблонах Blade:
{!! QrCode::generate('http://jobtools.ru'); !!}
Изменение цвета QR-кода
Вы можете установить свой собственный цвет шаблона и фона для QR-кода используя color(red, green, blue)
и backgroundColor(red, green, blue)
методы. Цветовые коды RGB можно взять здесь.
Вы также можете изменить поле отступа вокруг QR-кода, используя метод margin(5)
. Чем ниже значение, тем меньше отступ.
Вставка изображения внутрь QR-кода
Вы также можете поместить изображение в центр вашего QR-кода, используя метод merge('filename.png')
, эта функция принимает только .png
файлы, и вам также нужно указать формат ответа, что это image/png
.
Route::get('qr-code', function () { $pngImage = QrCode::format('png')->merge('image.png', 0.3, true) ->size(500)->errorCorrection('H') ->generate('http://jobtools.ru'); return response($pngImage)->header('Content-type','image/png'); });
Можно обернуть код в тег img
в шаблоне Blade:
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->merge('image.png', 0.3, true) ->size(500)->errorCorrection('H') ->generate('http://jobtools.ru')) !!} ">
Кодирование различных данных в QR-коде
Для того, чтобы сканеры QR-кодов, предлагали определенные действия после прочтений вашего кода, нужно специальным образом зашить их в код.
Электронный адрес
//Задаем email, тему и тело письма QrCode::email('admin@jobtools.ru', 'Спасибо за примеры', 'Выражаю благодарность 8)'); //Указываем только тему и тело письма, адрес пользователь введет самостоятельно QrCode::email(null, 'HellO', 'Текст письма'); //Указываем только адрес QrCode::email('admin@jobtools.ru');
Номер телефона
Откроется приложение для набора номера
QrCode::phoneNumber('123-345-567');
СМС
Откроется приложение для отправки СМС
//Задаем номер для отправки сообщения QrCode::SMS('555-555-5555'); //Задаем номер и текст сообщения QrCode::SMS('555-555-5555', 'Message');
Географические координаты
Откроется приложение с картой
//Первый параметр lattitude, второй longitude QrCode::geo(13.3499, 74.798059);
Ну как мне востановить с QR- код.