Библиотека генерации QR-кода в javascript [закрыта]

В настоящее время я ищу библиотеку js, которая может кодировать текст в кодах qr. Единственный, который мне удалось найти пока кажется сломанным, хотя другие люди утверждают, что используют его. Пример страницы не работает. Немного поиграв с ним, мне удалось сгенерировать коды, но они не расшифровываются программным обеспечением телефона.

Есть ли для этого другая библиотека js? Кому-нибудь удалось заставить его работать?

Меня не интересует решение, которое извлекает код из онлайн-сервиса (kaywa, google и т. д.).


Обновление:

Что ж, ребята, вы правы, эта библиотека действительно работает. Моя проблема заключалась в том, что я попытался включить его в страницу HTML5 Boilerplate, и document.write, похоже, не работает в этом. Я все равно изменил пример кода, чтобы браузер рисовал на холсте, а не в таблице, и я получил обратный порядок функции fillRect. Ниже приведен исправленный вызов функции.

context.fillRect(c * UNIT_SIZE, r * UNIT_SIZE, UNIT_SIZE, UNIT_SIZE);
// it's column-row, not row-column; don't ask why :)

Поскольку я больше не транспонирую свое изображение :), теперь qr декодирует нормально. Спасибо за поддержку.


person Alex Ciminian    schedule 27.12.2010    source источник
comment
Если вы планируете поддерживать мобильные телефоны, у вас будет гораздо меньше головной боли с решением на стороне сервера. Мобильный javascript поддерживается не так хорошо, как в браузерах.   -  person Byron Whitlock    schedule 29.12.2010
comment
Я не нацелен на мобильные устройства, мне просто нужен генератор, который я могу развернуть где угодно :), он будет использоваться пользователями настольных компьютеров. Поскольку javascript делает свое дело, я не видел смысла создавать его как веб-сервис.   -  person Alex Ciminian    schedule 29.12.2010
comment
Если я ищу их, кажется, что там довольно много плагинов и фрагментов: google .com/search?q=QR+codes+javascript.   -  person pimvdb    schedule 26.08.2011
comment
Обратите внимание, что Комментарий (1) устарел, а поддержка javascript на современных мобильных устройствах очень хороша. Есть несколько исключений, поэтому всегда проверяйте.   -  person ocodo    schedule 14.01.2013


Ответы (17)


Сценарий, который вы разместили, РАБОТАЕТ, sample.html не анализируется как HTML.

альтернативный текст

person Dejan Marjanović    schedule 27.12.2010
comment
Что ж, вы можете попытаться исправить этот d-project.googlecode. .com/svn/trunk/misc/qrcode/js/qrcode.js, но я бы выбрал сценарии на стороне сервера, что, если пользователь отключит JS или что-то в этом роде. - person Dejan Marjanović; 28.12.2010
comment
Это будет часть приложения для интрасети, поэтому отключенный javascript не подойдет. Я думал о том, чтобы исправить код, но он вообще не задокументирован, и я хотел бы избежать этого, если это возможно. - person Alex Ciminian; 28.12.2010
comment
К вашему сведению, этот JS отлично работает :) debconf11.com/so2.php , sample.html не анализируется как HTML :) - person Dejan Marjanović; 28.12.2010

Я написал простой кодировщик GPLv3 qr в javascript, который является локальным, использует HTML5 и очень быстр, поскольку это порт встроенной версии C, которую я написал для процессоров Atmel AVR.

http://code.google.com/p/jsqrencode/downloads/list

Существует действующая версия (которую можно сохранить как веб-приложение на устройствах iOS) по адресу http://zdez.org/qrenc3.html (сохраните дома, откроется в Safari, чтобы вы могли скопировать изображение или использовать Airprint)

Вот ссылка на загружаемый исходный код.

person tz1    schedule 18.02.2011
comment
Хорошо, я попробую... извините за поздний ответ, но я только что увидел ваш пост. - person Alex Ciminian; 05.03.2011
comment
@Muhd qrcode.js отлично работает в IE6~8. Он использует тег table, если браузер пользователя не поддерживает Canvas. Проверьте это davidshimjs.github.com/qrcodejs - person David Shim; 26.12.2012
comment
Хороший. @tz1- Можете ли вы обновить его, чтобы включить определяемое пользователем изображение, встроенное в QR-код, например: goqr.me/qr -код-логотип - person raghavsood33; 16.11.2015
comment
+1, несмотря на то, что ваш формат кода отстой, это, кажется, лучший генератор qr js с точки зрения качества изображения кода qr - person albanx; 24.11.2016
comment
кстати у него есть некоторые баги, например нельзя задать ширину кода qr, он кажется немного рандомным - person albanx; 24.11.2016

Плагин jquery-qrcode jQuery также генерирует QR-код, используя элемент холста HTML5 или таблицу HTML, если холст не поддерживается.

https://github.com/jeromeetienne/jquery-qrcode

$('#test').qrcode({
    width: 120,
    height: 120, 
    text: "https://github.com/jeromeetienne/jquery-qrcode"});

введите здесь описание изображения

Рабочая демонстрация jsFiddle:

http://jsfiddle.net/maxim75/YwN8p/4/

person Maksym Kozlenko    schedule 23.12.2011
comment
Всякий раз, когда я гуглю что-нибудь на JavaScript, я всегда добавляю за ним -jquery, чтобы убедиться, что я получаю чистый и красивый JavaScript без мерзости. :) - person Kebman; 15.08.2017

Есть простая библиотека JavaScript, которую я когда-то нашел, и она называется QRCode.js.

QRCode.js — это кроссбраузерная библиотека JavaScript, которая позволяет генерировать QRCode на лету на стороне клиента. Он использует холст и таблицы HTMl5 для отображения QRCode. Сама библиотека не имеет никаких зависимостей.

Чтобы сгенерировать QRCode, вам просто нужно включить библиотеку JavaScript, а затем передать в качестве параметров функции QRCode текст, который вы хотите закодировать как QRCode, ширину и высоту QRCode, который вы хотите отобразить, а также указанный вами цвет переднего плана и цвет фона.

person Hirvesh    schedule 08.02.2013
comment
Библиотека хороша, но если вы хотите, чтобы я изменил отрицательный голос на положительный, пожалуйста, дайте прямую ссылку на источник, а не на забитую рекламой страницу агрегатора. :) - person Alex Ciminian; 09.02.2013
comment
Плохо - вот так я добавил ресурс в закладки! Обновил ссылку :) - person Hirvesh; 10.02.2013
comment
как это с различными размерами ввода? Можно ли задать размер модуля (размер каждой точки) или только общий размер? Лучше, если вы можете установить размер модуля, так как тогда его будет более гибко настраивать для различного размера ввода. - person Don Cheadle; 11.03.2015

Я нашел работающий генератор qrcode на основе javascript-jquery, который может вас заинтересовать. Его открытый исходный код, и он действительно работает. Вот ссылка: https://github.com/jeromeetienne/jquery-qrcode

Преимущество этого заключается в том, что он легкий и не вызывает никаких удаленных служб или веб-сайтов.

person Randy D. Binondo    schedule 12.08.2011
comment
Внутри используется та же библиотека, что и в исходном сообщении — (github. com/jeromeetienne/jquery-qrcode/blob/master/src/) - person ijk; 14.02.2013
comment
Версия на момент этого комментария (2016 г.) содержит много приятных функций: режим холст/изображение/див, настраиваемые: цвет, радиус угла, а также настраиваемое наложение изображения и текста. - person Steve Seeger; 22.02.2016


QR-код в начальном посте поддерживает только до 271 байта (версия 10, размер = 57x57, уровень EC L).

Чтобы он поддерживал полные спецификации QR-кода (версия 40, 177x177, 2953 байта), вам нужно добавить больше значений в его RS_BLOCK_TABLE.

См. остальные матрицы (версия 11-40) здесь: http://two.pairlist.net/pipermail/reportlab-users/2010-September/009707.html

person Enzo Tran    schedule 31.03.2011

Решение Максима лучше, чем библиотека Google, потому что оно работает локально и не требует вызова Google API. также, если вы не используете jQuery, вы можете использовать его по адресу https://github.com/amanuel/JS-HTML5-QRCode-Generator

person YCode    schedule 26.01.2012

Я использую QR-код ShieldUI Lite, который можно найти здесь:

https://github.com/shieldui/shieldui-lite

Содержит все версии QR-кода, все уровни ошибок.

person Yavor Angelov    schedule 28.07.2016

Другим решением HTML5 является http://davidshimjs.github.io/qrcodejs/ с совместимостью с IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile браузером.

person raghavsood33    schedule 15.11.2015

Как холст/PNG

Существует также новый kjua от того же автора, что и "старый" jQuery.qrcode.

Как холст/PNG/SVG

И QR-Code-generator от @nayuki также может создавать QR-коды в виде SVG.

person rugk    schedule 26.11.2017

Вы можете использовать Telerik Kendo-UI для создания qrcode и штрих-кода. Это простой в использовании.

Попробуйте использовать этот пример кода:

QR-код: https://demos.telerik.com/kendo-ui/qrcode/index

Штрих-код: https://demos.telerik.com/kendo-ui/barcode/index< /а>

person Arif    schedule 31.10.2019

У npm есть несколько. Я понятия не имею, какие из них хорошие.

$ npm search qrcode
npm http GET https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1379059929305
npm http 200 https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1379059929305
NAME             DESCRIPTION                                                   A
jsqrcode         a node port of Lazar Laszlo's `jsqrcode` qr code decoder      =
jsqrcode-lite    Simplified version of Lazar Laszlo's `jsqrcode` for node.     =
node-zxing       ZXing Wrapper                                                 =
qr               A small library to generate QR codes with libqrencode.        =
qr-element       qrcode dom element                                            =
qr.js            qrcode encoding in javascript                                 =
qrcode           QRCode / 2d Barcode api with both server side and client side s
qrcode-emitter   Emits QR codes found in an image stream.                      =
qrcode-npm       QRCode Generator for JavaScript                               =
qrcode-terminal  QRCodes, in the terminal                                      =
qrcode.js        QR Code Detection / Decoding / Generation                     =
qread            QRcode detector & decoder                                     =
qruri            NodeJS port of Kang Seonghoon's qr.js                         =
rescode          Generate Codes (EAN13, QRCODE ..)                             =
zbar             node-zbar is a NodeJS binding to the ZBar QR Code library.   
person chovy    schedule 11.10.2013
comment
Ваш ответ кажется более интересным, чем они выглядят! Это позор! Пожалуйста, объясни! (Добавьте введение, например Посмотрите на npm поисковую систему). Я не знал этого раньше: +1 спасибо! - person F. Hauri; 31.01.2014

Я не смог найти генератор кода JavaScript qr.

Но вы могли бырассмотреть возможность использования Google API:

http://code.google.com/apis/chart/docs/gallery/qr_codes.html http://togosoft.com/web/qrcode/qrcode.js

Обновление: я только что попробовал http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/qrcode.js и мне кажется, что это нормально. Единственное, что я сделал, это увеличил размер и заставил его правильно закрывать TD, так как самозакрытие не является правильным html. http://k3rmit.org/nopaste/759 Я протестировал 3 разные строки и использовал приложение под названием QRReader на мой iPhone для декодирования.

Обновление 2: с помощью var qr = new QRCode(10, QRErrorCorrectLevel.L); я смог уместить 271 символ в QRCode, однако, возможно, это не самая надежная настройка.

person Thomas    schedule 27.12.2010
comment
ой, я отвлекся, читая ответ и комментарий в кодировке qr :) - person Thomas; 28.12.2010
comment
@Alex Ciminian только что попробовал, qrcode.js у меня отлично работает (см. обновление). Какие у вас были проблемы при декодировании через телефон? каким софтом расшифровывали? - person Thomas; 28.12.2010
comment
Google API объявлен устаревшим googledevelopers.blogspot.ca /2012/04/ - person Robert Levy; 24.07.2013

Я знаю, что это старый вопрос, но я думаю, что нет необходимости в библиотеке для создания QR-кода из текста. Вам просто нужно использовать API QR-кода.

Реализация очень проста, у нас есть форма с текстовым полем, которое фиксирует данные содержимого. Всякий раз, когда мы нажимаем кнопку генерации, мы генерируем новый URL-адрес запроса к API, этот URL-адрес состоит из двух основных компонентов data и size. Первый требует закодированного текстового содержимого, а второй будет определять размер изображения. Вот код:

let baseURL = 'https://api.qrserver.com/v1/create-qr-code/?data='
let config = '&size=120x120'

let btn, qrCode, content;

function htmlEncode(value) {
  return $('<div/>').text(value).html();
}

$(function() {
  btn = $('#generate');
  qrCode = $('.qr-code');
  content = $('#content');
  btn.click(function() {
    qrCode.attr('src', baseURL + encodeURIComponent(htmlEncode(content.val())) + config);
  });
});
.qr-code {
  max-width: 160px;
  margin: 10px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container-fluid">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
  <div class="text-center">
    <img src="https://api.qrserver.com/v1/create-qr-code/?data=http%3A%2F%2Fwww.google.com&size=120x120" class="qr-code img-thumbnail img-responsive">
  </div>

  <div class="form-horizontal">
    <div class="form-group">
      <label class="control-label col-sm-4" for="content">Enter content:</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" id="content" placeholder="i.e. www.google.com">
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-offset-2 col-sm-10">
        <button type="button" class="btn btn-default" id="generate">Generate</button>
      </div>
    </div>
  </div>
</div>

person Teocci    schedule 20.05.2019

Если вы не можете найти нативную реализацию JavaScript, вы всегда можете использовать AJAX для изображения со своего сервера.

http://www.swetake.com/qr/qr_cgi_e.html

person Byron Whitlock    schedule 27.12.2010
comment
Как я сказал в QR-разговоре ниже :), я не хочу зависеть от серверной технологии для этого. - person Alex Ciminian; 28.12.2010

https://drive.google.com/open?id=0B3TWIbBcUUTwcE1vV24wQnRxNGs

выше приведена ссылка на файл js, включите его в свой проект и напишите приведенный ниже код в файле ctp в Cake php или в любом другом месте, которое вы хотите использовать. я проверил это в торте php...

<-- including the file....
<?php echo $this->Html->script('jquery.qrcode.min.js')?>
<div style='padding:100px''><img id="demo" style='width: 100px,height: 100px'></div>
<script type="text/javascript">jQuery("#demo").qrcode({text: "HEllo World!"});</script>
person Subodh kumar    schedule 06.05.2017