Qrcode png не работает

Генерация QR-кода в PHP

Вопрос генерации QR-кодов в PHP достаточно освещён, есть много библиотек, одной из них является «PHP QR Code» – быстрый и легкий класс, рассмотрим его применение совместно с графической библиотекой GD.

Быстрый старт

Вывод в браузер:

Сохранение в файл:

Описание параметров

$text – текст, который будет закодирован в изображении.

$outfile – куда сохранить файл, false – вывести в браузер.

$level – уровень коррекции ошибок:

Значение Уровень Процент восстановления
L Низкий (по умолчанию) 7%
M Средний 15%
Q Четверть 25%
H Высокий 30%

$size – размер «пикселя», по умолчанию 3px.

$margin – отступ от краев, задаётся в единицах, указанных в $size .

$saveandprint – если true , то изображение одновременно сохранится в файле $outfile и выведется в браузер.

Данные в QR-коде

Для мобильных устройств, в данных можно использовать «протоколы приложений», тем самым при распознавании QR-кода сразу открыть нужное приложение, например набрать телефонный номер, написать письмо, открыть диалог в WhatsApp или Viber и т.д.

Источник

Генерация QR кода в приложениях на PHP

Популярность QR кодов постепенно набирает высоту благодаря возможности включать большой объем данных в единичное изображение и распространению смартфонов, которые обеспечивают быстрое сканирование и декодирование информации. Двумерный полосовой код был изобретен в Японии. На него имеется патент, но изобретатель, Denso Wave, решил сделать QR код доступным для всех.

В данном уроке мы научимся быстро генерировать QR код в приложении PHP. Для решения задачи будем использовать библиотеку PHP QR Code, которая не зависит от других библиотек.

Генерируем ваш первый QR код

Сначала нужно загрузить библиотеку PHP QR Code с GitHub. Затем распаковать архив в место, где тестируются ваши разработки, например http://localhost/phpqrcode, для запуска демонстрации. Страница проекта будет иметь вид, изображенный на рисунке ниже. Набиваем текст в поле ввода и получаем изображение соответствующего QR кода. Для работы приложения требуется PHP с расширением GD2.

Использовать библиотеку в своих приложениях очень просто:

Две строчки кода позволяют получить готовое изображение QR кода в вашем приложении. Но библиотека предоставляет больше возможностей.

Возможности библиотеки

Полный вызов функции выглядит следующим образом:

Первый параметр определяет текст или данные, которые будут кодированы в изображении.

Второй параметр определяет имя файла, который будет содержать генерированное изображение. По умолчанию здесь располагается логическое значение false, и изображение будет отправляться в браузер.

Третий параметр указывает уровень коррекции ошибок для генерируемого полосового кода, переданного в виде одной строки. Здесь определяется сколько кодовых слов (8-бит на кодовое слово) может быть восстановлено в поврежденном изображении QR кода с помощью алгоритма коррекции ошибок Рида-Соломона. Более высокий уровень коррекции ошибок приводит к меньшей плотности данных в коде заданного размера. Ниже приводится таблица соответствия процента восстановления ошибок и строковых констант для метода QRcode::png() .

Уровень Процент восстановления Константа
Низкий 7% L
Средний 15% M
Четверть 25% Q
Высокий 30% H

Четвертый параметр определяет размер каждого квадрата в коде (в px). Каждый квадрат в коде (также называется “пиксель” или “модуль”) имеет размер 4×4px по умолчанию.

Пятый параметр указывает размер белой рамки вокруг кода, измеренной в размерах «модуля» (для нашего случая — 16px с каждой стороны для модуля 4×4px).

Библиотека поддерживает экспорт изображений в формате PNG, SVG, и EPS. Для генерации изображения в нужном формате нужно использовать метод с соответствующим именем png(), svg() или eps() .

Также можно изменять цвет фона и кода с помощью дополнительных параметров:

Шестой параметр (в примере имеет значение false) при проверке оказался бесполезным. В соответствии с документацией, если он имеет значение true метод должен сохранять изображение и передавать его в браузер. Но описанного результата получить не удалось.

Библиотека также имеет другие возможности, например, кэширование и определение скорости генерации изображения. Но для работы они не имеют большого значения.

Вычисление размера изображения кода

Для определения размера изображения кода можно использовать простую формулу:

Количество пикселей в модуле определяется в четвертом параметре при вызове метода. Размер модуля выбирается из таблицы размеров кода по следующим правилам:

  1. Выбираем столбец типа данных (data bits, numeric, alphanumeric, binary, или Kanji). Здесь определяется максимальная длина данных определенного типа, которые могут быть закодированы. В нашем примере использовался тип alphanumeric, но если будет кодироваться строка UTF-8, то следует использовать тип binary. Kanji применяется для Японского языка.
  2. Определяем нужный уровень коррекции ошибок. Находим для заданной длины строки минимальный номер версии, которая может хранить данные такой длины. В примере используется 24 символа с уровнем L, поэтому значение будет из первой строки.
  3. Получаем размер модуля (для примера будет 21×21). Библиотека PHP QR Code использует следующий номер для обеспечения запаса.

Если вычислить размер модуля для примера, то можно определить размер генерируемого изображения:

Но библиотека PHP QR Code использует модуль следующего размера:

Использование QR кодов

Наиболее популярное применение QR кодов — кодирование адресов URL веб сайтов, например, страниц фан-клубов в социальных сетях, онлайн описания продуктов и так далее. Ниже приводится пример визитной карточки, на которой QR кодом указан адрес профиля в LinkedIn.

Однако сфера применения QR кодов не имеет границ. В них можно хранить телефонные номера, адреса e-mail, краткие описания товаров и прочее. А использование специальных программ на смартфонах для чтения QR кодов существенно облегчает их использование в практической жизни человека.

Когда встает вопрос об использовании QR кода, реальные ограничения заключаются только в размере данных и пространстве для размещения .

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: phpmaster.com/generate-qr-codes-in-php/
Перевел: Сергей Фастунов
Урок создан: 28 Сентября 2012
Просмотров: 51904
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник

Генерация QR кода в приложениях на PHP

Популярность QR кодов постепенно набирает высоту благодаря возможности включать большой объем данных в единичное изображение и распространению смартфонов, которые обеспечивают быстрое сканирование и декодирование информации. Двумерный полосовой код был изобретен в Японии. На него имеется патент, но изобретатель, Denso Wave, решил сделать QR код доступным для всех.

В данном уроке мы научимся быстро генерировать QR код в приложении PHP. Для решения задачи будем использовать библиотеку PHP QR Code, которая не зависит от других библиотек.

Генерируем ваш первый QR код

Сначала нужно загрузить библиотеку PHP QR Code с GitHub. Затем распаковать архив в место, где тестируются ваши разработки, например http://localhost/phpqrcode, для запуска демонстрации. Страница проекта будет иметь вид, изображенный на рисунке ниже. Набиваем текст в поле ввода и получаем изображение соответствующего QR кода. Для работы приложения требуется PHP с расширением GD2.

Использовать библиотеку в своих приложениях очень просто:

Две строчки кода позволяют получить готовое изображение QR кода в вашем приложении. Но библиотека предоставляет больше возможностей.

Возможности библиотеки

Полный вызов функции выглядит следующим образом:

Первый параметр определяет текст или данные, которые будут кодированы в изображении.

Второй параметр определяет имя файла, который будет содержать генерированное изображение. По умолчанию здесь располагается логическое значение false, и изображение будет отправляться в браузер.

Третий параметр указывает уровень коррекции ошибок для генерируемого полосового кода, переданного в виде одной строки. Здесь определяется сколько кодовых слов (8-бит на кодовое слово) может быть восстановлено в поврежденном изображении QR кода с помощью алгоритма коррекции ошибок Рида-Соломона. Более высокий уровень коррекции ошибок приводит к меньшей плотности данных в коде заданного размера. Ниже приводится таблица соответствия процента восстановления ошибок и строковых констант для метода QRcode::png() .

Уровень Процент восстановления Константа
Низкий 7% L
Средний 15% M
Четверть 25% Q
Высокий 30% H

Четвертый параметр определяет размер каждого квадрата в коде (в px). Каждый квадрат в коде (также называется “пиксель” или “модуль”) имеет размер 4×4px по умолчанию.

Пятый параметр указывает размер белой рамки вокруг кода, измеренной в размерах «модуля» (для нашего случая — 16px с каждой стороны для модуля 4×4px).

Библиотека поддерживает экспорт изображений в формате PNG, SVG, и EPS. Для генерации изображения в нужном формате нужно использовать метод с соответствующим именем png(), svg() или eps() .

Также можно изменять цвет фона и кода с помощью дополнительных параметров:

Шестой параметр (в примере имеет значение false) при проверке оказался бесполезным. В соответствии с документацией, если он имеет значение true метод должен сохранять изображение и передавать его в браузер. Но описанного результата получить не удалось.

Библиотека также имеет другие возможности, например, кэширование и определение скорости генерации изображения. Но для работы они не имеют большого значения.

Вычисление размера изображения кода

Для определения размера изображения кода можно использовать простую формулу:

Количество пикселей в модуле определяется в четвертом параметре при вызове метода. Размер модуля выбирается из таблицы размеров кода по следующим правилам:

  1. Выбираем столбец типа данных (data bits, numeric, alphanumeric, binary, или Kanji). Здесь определяется максимальная длина данных определенного типа, которые могут быть закодированы. В нашем примере использовался тип alphanumeric, но если будет кодироваться строка UTF-8, то следует использовать тип binary. Kanji применяется для Японского языка.
  2. Определяем нужный уровень коррекции ошибок. Находим для заданной длины строки минимальный номер версии, которая может хранить данные такой длины. В примере используется 24 символа с уровнем L, поэтому значение будет из первой строки.
  3. Получаем размер модуля (для примера будет 21×21). Библиотека PHP QR Code использует следующий номер для обеспечения запаса.

Если вычислить размер модуля для примера, то можно определить размер генерируемого изображения:

Но библиотека PHP QR Code использует модуль следующего размера:

Использование QR кодов

Наиболее популярное применение QR кодов — кодирование адресов URL веб сайтов, например, страниц фан-клубов в социальных сетях, онлайн описания продуктов и так далее. Ниже приводится пример визитной карточки, на которой QR кодом указан адрес профиля в LinkedIn.

Однако сфера применения QR кодов не имеет границ. В них можно хранить телефонные номера, адреса e-mail, краткие описания товаров и прочее. А использование специальных программ на смартфонах для чтения QR кодов существенно облегчает их использование в практической жизни человека.

Когда встает вопрос об использовании QR кода, реальные ограничения заключаются только в размере данных и пространстве для размещения .

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: phpmaster.com/generate-qr-codes-in-php/
Перевел: Сергей Фастунов
Урок создан: 28 Сентября 2012
Просмотров: 51904
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник

Читайте также:  Php для windows настроить
Оцените статью