QRCreator.js
Make now QR-code.
- Сохраните файл qr-code.js
По ссылке страница перенаправляется на содержимое файла.
Нажмите правую кнопку мыши ( или сочетание клавишCtrl+S/CMD+S) и выберитеСохранить как - В html файле, в теге
<head>вставьте тег<script>с указанием ссылки на файл QRCreator.js
<script src="qr-code.js" defer><script/>
<html lang="en">
<head>
<script src="qr-code.js"></script>
<title></title>
</head>
<body>
<div id="qrcode"></div>
</body>
<script>
document.getElementById('qrcode').append(makeQRCode('Привет, Мир!').result)
</script>
</html><html lang="en">
<head>
<script src="qr-code.js" defer></script>
<script src="main.js" defer></script>
<title></title>
</head>
<body>
<div id="qrcode1"></div>
<div id="qrcode2"></div>
</body>
</html>main.js
const qrcode1 = makeQRCode('Привет, Мир!', { mode: 4, eccl: 0, version: 3, mask: -1, image: 'html', modsize: -1, margin: 0 })
const qrcode2 = makeQRCode('Привет, Мир!', { mode: 1})
const content = qrcode => qrcode.error ? `недопустимые исходные данные ${qrcode.error}` : qrcode.result
document.getElementById('qrcode1').append('QR-код № 1: ', content(qrcode1))
document.getElementById('qrcode2').append('QR-код № 2: ', content(qrcode2))window.makeQRCode(text [, options ])
или
makeQRCode(text [, options ])
text
Кодируемая текстовая строка UTF-8.
options
Объект, содержащий свойства со значениями параметров генерации QR-кода, по умолчанию:{mode: -1, eccl: 0, version: -1, mask: -1, image: 'PNG', modsize: -1, margin: -1}
Объект qrcode, описывающий результат генерации QR-кода.
| свойство | значение | содержание |
|---|---|---|
| mode | целое число -1, 1, 2, 4 |
метод кодирования 1 - числовой, 2 - буквенно-цифровой, 4 - октетный, если не указан или -1, то выбирается допустимый |
| eccl | целое число от -1 до 3 |
уровень коррекции ошибок 1(L), 0(M), 3(Q), 2(H) если не указан или -1, то подбор допустимого, начиная с 3(Q) |
| version | целое число -1 или от 1 до 40 |
версия если не указана или -1, то выбирается наименьшая возможная |
| mask | целое число -1 или от 0 до 7 |
шаблон маски если не указан или -1, то выбирается лучшая маска |
| свойство | значение | содержание |
|---|---|---|
| image | регистронезависимая строка 'PNG', 'SVG', 'HTML' или 'NONE' |
формат изображения, если не указан, то результат выводится в формате 'PNG', при задании значения 'NONE' - результат не формируется |
| modsize | целое число -1 или от 1 |
размер модуляmodsize x modsizeесли не указан или -1, то 4 |
| margin | целое число от 0 |
размер свободной зоны в модулях, если не указан, то 4 модуля |
| свойство | значение | содержание |
|---|---|---|
| text | заданное | исходный текст |
| mode ecclversion mask |
заданное или подобранное |
параметры сформированной матрицы QR-кода |
| modsize margin |
заданно или по умолчанию |
параметры сформированной матрицы QR-кода и параметры изображения QR-кода |
| image | заданное | формат изображения QR-кода или 'NONE' |
| matrix | массив [у][х]у-индекс колонки,х-индекс строки |
матрица QR-кода где значение элемента матрицы соответствует цвету изображения модуля: 0 - белый, 1 - черный |
| result | HTML элемент или '' |
изображение QR-кода в заданом формате или пустая строка в случае ошибки, или когда был задан параметр image === 'NONE' |
| error | имя свойства или '' |
имя свойства, значение которого вызвало ошибку или пустая строка при отстутствии ошибок |
| errorSubcode | строка с целочисленным цифроовым кодом или '' |
код, поясняющий ошибку или пустая строка при отстутствии ошибок |
qrcode.image = newImage
newImage
новое значение формата изображения
При изменении текущего формата qrcode.image на новое значение newImage происходит переформирование изображения.
Процесс может вызвать ошибку:
qrcode.error === "image".
qrcode.download (filename, image)
filename в формате image.
filename
Имя файла для скачивания изображения, включая расширение.
Если параметр
filenameне задан илиfilename === '', тоfilenameпримает значение по умолчанию:
-'qrcode.png'приqrcode.image === 'PNG'
-'qrcode.svg'приqrcode.image === 'SVG'
-'qrcode.html'приqrcode.image === 'HTML'
image
Формат файла изображения QR-кода.
Если параметр
imageне задан, то приниматся текущее значениеqrcode.image.
Если параметр
imageуказан, то до вывода изображение переформируется ( соответствует методуqrcode.image = newImage).
Если при переформировании изображения произошла ошибка
qrcode.error !== ""или задан форматqrcode.image === 'NONE'и, соответственно, отсутствует результатqrcode.result === '', то запрос на скачиваение файла не выполняется.
qrcode.clearError()
qrcode.error и qrcode.errorSubcode.
При наличии ошибок формирования изображения, методы:
qrcode.image = newImageиqrcode.download(filename, image)не работают, пока сообщение не будет обработано и (или) очищеноqrcode.clearError()
| error | errorSubcode | содержание |
|---|---|---|
| text | 1 | недопустимый формат строки для кодирования |
| text | 2 | не указан текст для кодирования |
| text | 3 | текст содержит недопустимые символы |
| mode | 1 | недопустимый или неподдерживаемый метод кодирования |
| version | 1 | слишком длинный текст для кодирования |
| version | 2 | недопустимая версия |
| version | 3 | текст слишком длинный для выбранной версии |
| eccl | 1 | недопустимый уровень коррекции ошибок |
| mask | 1 | недопустимый шаблон маски |
| image | 1 | недопустимый формат изображения для генерации QR-кода |
| image | 2 | для вывода в формате PNG необходима поддержка canvas |
| image | 3 | недопустимый формат изображения для генерации QR-кода |
| modsize | 1 | недопустимый размер модуля |
| margin | 1 | недопустимый размер свободной зоны (в модулях) |
Прототип qrcode.js
Учебник QR Code Tutorial
Habr.com Алгоритм генерации QR-кода
Стандарт Спецификация символики штрихового кода QR Code ISO/IEC 18004:2015
