Генерируем QR-код в своих приложениях.
Генерируем QR код на PHP.
В этой статье мы займёмся вопросом «Как сгенерировать QR код в своих приложениях». Напишем под языки PHP, Delphi и C#. Причем под PHP будем писать в 2 разных вариантах, один более предпочтителен, нам не придётся таскать с проектом гору файлов, второй «привет из прошлого», тем не менее довольно популярный и не зависит от работоспособности ресурса, чьё API мы и будем использовать.
Вариант №1.
Поскольку в стандартной поставке php ничего для генерации QR кодов нет, придётся воспользоваться сторонними библиотеками. Сразу обращаем внимание на PHP QR Code, который лежит на гитхабе — GitHub PHP QR Code. Всё что нам нужно сделать, это добавить файл qrlib.php в своей проект, остальное подключится само.
Собственно опробовать саму библиотеку можно ничего не создавая и не подключая, просто запускаем индексный файл из папки проекта и перед нами появится такая тестовая форма, в которой и можно генерировать QR коды. На этом месте следует сделать важное уточнение … данная библиотека не будет работать без поддержки GD2 с поддержкой PNG. Поэтому если у вас она не подключена, то идём в php.ini , находим там данное расширение и убираем у него символ комментария.
Наш QR код создаётся в формате PNG … нас это, конечно, вполне устраивает, но данная библиотека может создавать QR коды и в формате SVG.
Разбираем основной функционал.
Собственно весь процесс генерации QR кода заключается всего в одной функции:
QRcode::png(‘PHP QR Code : )’, ‘test.png‘, ‘L‘, 4, 2);
Но что означают все эти параметры ? Давайте заглянем в файл INSTALL. Тут мы видим следующие строки:
//write code into file, Error corection lecer is lowest, L (one form: L,M,Q,H)
//each code square will be 4?4 pixels (4x zoom)
//code will have 2 code squares white boundary around
QRcode::png(‘PHP QR Code : )’, ‘test.png’, ‘L’, 4, 2);
По порядку QRcode::png означает что наш QR код будет генерироваться в формате png, если хотите QR код в SVG формате, тогда указывайте QRcode::svg Только в качестве второго параметра тоже не забудьте поменять расширение файла.Теперь давайте разберем сами параметры:
(‘PHP QR Code : )’, ‘test.png’, ‘L’, 4, 2);
PHP QR Code : ) — это текст, либо ссылка, которую мы хотим закодировать.
test.png — файл, в который весь этот QR-код будет сохраняться.
L — уровень коррекции ошибок, константа, допустимы следующие значения (от меньшего к большему) L — M — Q — H, от уровня коррекции ошибок зависит и плотность данных, что впрочем вполне естественно. Увеличивается и размер изображения, это тоже нужно учитывать.
QRcode::png(‘PHP QR Code : )’, ‘test.png’, ‘L’, 4, 2);
Предпоследний параметр это длина и ширина нашего модуля (модуль это отдельно взятый квадратик из QR кода)
Последний параметр это ширина нашей рамки вокруг QR кода, внимаине(!), в модулях, не в пикселях, а именно в модулях, значение 2 указывает на то, что рамка будет содержать 2 модуля, т.е. в данном случае иметь ширину 8px. Если не хотите рамку вокруг QR кода вообще, тогда в качестве параметра указывайте ноль.
Рамку на белом фоне можно увидеть выделив наши коды, справа код без рамки и слева код с рамкой в 1 модуль.
QRcode::png(‘http://blogee.ru’, ‘test.png’, ‘L’, 4, 2, false);
Как видите, в конце у нас появился ещё один параметр, при указании false в качестве шестого параметра, скрипт должен сохранить картинку и отдать её в браузер. Но никакого эффекта не замеченно, поэтому переходим к седьмому параметру.
Пример кода скрипта:
<?phpinclude
«qrlib.php»;
$background = 0xee00ff;
QRcode::png(‘http://blogee.ru’,’test.png’,’L’, 8, 0, true, $background);
?>
<img src=»test.png» alt=»qrlib»/>
Седьмой параметр — $background это цвет, которым можно закрасить пустые области вокруг черных модулей. Получается вот такой «гламур»:
QRcode::png(‘http://blogee.ru’,’test.png’,’L’, 8, 0, true, $background,$foreground);
Последний параметр $foreground позволяет нам раскрасить черные блоки QR кода.
Напишем: $foreground = 0xFFee22;
Получился вот такой сферический QR код в вакууме.
Ну собственно всё, переходим ко 2 более быстрому и более простому варианту генерации QR кодов.
QR-код защищает велосипеды немецких студентов от угона QR-кодированный Дубай QR-код поможет узнать о подвиге Тюменский лицей оснастили QR-кодом "Билайн" запустил проект "QR-код - интерактивный гид по Йошкар-Оле" Работа с QR-кодами в InDesign Летом в центре Ульяновска могут появиться QR-коды В Уфе реализуется проект QR – код QR-коды помогут совершать экскурсию по историческим местам Улан-Удэ Динамический QR-код и его применения на веб-сайтах.
Обратная связь