Skip to content
This repository
branch: master
Octocat-spinner-32 tests Code cleanup. October 27, 2013
Octocat-spinner-32 use Small package maintenance. October 09, 2010
Octocat-spinner-32 .gitignore Added tests/pthread_qrencode. February 28, 2012
Octocat-spinner-32 .travis.yml yet another test. January 28, 2014
Octocat-spinner-32 COPYING December 04, 2006
Octocat-spinner-32 ChangeLog Messages improved. February 14, 2014
Octocat-spinner-32 Doxyfile Rebased on a template from Doxygen October 13, 2012
Octocat-spinner-32 Reed-Solomon code routine has been completely rewritten. August 15, 2013
Octocat-spinner-32 NEWS Some short/overrunning underlines fixed. August 22, 2013
Octocat-spinner-32 README Messages improved. February 14, 2014
Octocat-spinner-32 More markdowns. February 09, 2014
Octocat-spinner-32 TODO Micro QR Code support is marked as 'experimental'. More tests and doc… November 24, 2011
Octocat-spinner-32 acinclude.m4 December 17, 2006
Octocat-spinner-32 bug fix. March 30, 2013
Octocat-spinner-32 bitstream.c Minimum length of bit buffer has been extended to 128. In many cases … September 06, 2013
Octocat-spinner-32 bitstream.h Reduced the use of dynamic memory allocation, and performance improved. September 29, 2012
Octocat-spinner-32 Fixed some warnings. February 09, 2014
Octocat-spinner-32 Explicit link to libpthread has been eliminated. April 10, 2012
Octocat-spinner-32 mask.c Some code cleanups. October 24, 2011
Octocat-spinner-32 mask.h Various bug fixes. (Thanks to Adam Shepherd) October 17, 2011
Octocat-spinner-32 mmask.c A bug in mask evaluation function has been eliminatd. November 24, 2011
Octocat-spinner-32 mmask.h Copyright year updated. October 17, 2011
Octocat-spinner-32 mqrspec.c Copyright year updated. October 17, 2011
Octocat-spinner-32 mqrspec.h Copyright year updated. October 17, 2011
Octocat-spinner-32 qrenc.c Messages improved. February 14, 2014
Octocat-spinner-32 Added SVG option to --type. October 09, 2012
Octocat-spinner-32 qrencode.c Code cleanups and refactoring. August 15, 2013
Octocat-spinner-32 qrencode.h Doxygen documents improved. November 30, 2012
Octocat-spinner-32 Copyright year and mail addresses updated. October 09, 2010
Octocat-spinner-32 qrencode_inner.h Copyright year updated. October 17, 2011
Octocat-spinner-32 qrinput.c Messages improved. February 14, 2014
Octocat-spinner-32 qrinput.h Interface of QRinput_getBitStream() have been changed. September 29, 2012
Octocat-spinner-32 qrspec.c Bugfix: Numerical result out of range September 04, 2013
Octocat-spinner-32 qrspec.h Copyright year updated. October 17, 2011
Octocat-spinner-32 rsecc.c Code cleanups. January 04, 2014
Octocat-spinner-32 rsecc.h Code cleanups. January 04, 2014
Octocat-spinner-32 split.c More bug fixes related to switching cost estimation. February 26, 2013
Octocat-spinner-32 split.h Copyright year updated. October 17, 2011

libqrencode 3.4.3 - QR Code encoding library Build Status


Libqrencode is a library for encoding data in a QR Code symbol, a 2D symbology that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters and has high robustness.

Libqrencode accepts a string or a list of data chunks then encodes in a QR Code symbol as a bitmap array. While other QR Code applications generate an image file, using libqrencode allows applications to render QR Code symbols from raw bitmap data directly. This library also contains a command-line utility outputs a QR Code symbol as a PNG image.


Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Most of features in the specification are implemented such as:

  • Numeric, alphabet, Japanese kanji (Shift-JIS) or any 8 bit code can be embedded
  • Optimized encoding of a string
  • Structured-append of symbols
  • Micro QR Code (experimental)

Currently the following features are not supported:

  • ECI and FNC1 mode
  • QR Code model 1 (deprecated)



Some test programs or utility tools uses SDL or PNG, but the library itself has no dependencies. You can skip compiling those tools if you want not to install programs using SDL or PNG.

Compile & install

Just try

make install

This compiles and installs the library and header file to the appropriate directories. By default, /usr/local/lib and /usr/local/include. You can change the destination directory by passing some options to the configure script. Run "./configure --help" to see the list of options.

It also installs a binary "qrencode" to /usr/local/bin. If you want not to install it, give "--without-tools" option to the configure script.

When you downloaded a development tree from github, it is required to run "" at first to generate configure script.


Basic usages of this library are written in the header file (qrencode.h). You can generate a manual of the library by using Doxygen.


The library is distributed WITHOUT ANY WRRANTY.

Micro QR Code support is EXPERIMENTAL.

Be careful to use the command line tool (qrencode) if it is used by a web application (e.g. CGI script). For example, giving "-s" option with a large number to qrencode may cause DoS. The parameters should be checked by the application.


Copyright (C) 2006-2012 Kentaro Fukuchi

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


Visit the homepage at:

for new releases. The git repository is available at:

Please mail any bug reports, suggestions, comments, and questions to:

Kentaro Fukuchi

or submit issues to:

Questions of license compliance are also welcome.


QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other countries.

Reed-Solomon encoder is written by Phil Karn, KA9Q. Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q

  • NANKI Haruo - improved lower-case characteres encoding
  • Philippe Delcroix - improved mask evaluation
  • Yusuke Mihara - structured-append support
  • David Dahl - DPI and SVG support patch
  • Adam Shepherd - bug fix patch of the mask evaluation
  • Josef Eisl (zapster) - EPS support patch
  • Colin (moshen) - ANSI support patch
  • Ralf Ertzinger - ASCII support patch
  • Yutaka Niibe (gniibe) - various bug fix patches
  • Dan Storm (Repox) - SVG support patch
  • Lennart Poettering (mezcalero) - improved text art patch
  • Yann Droneaud - improved input validation patch
  • Viona - bug fix patch for string splitting
  • Daniel Dörrhöfer - RLE option, some bug fixes, Travis configuration
  • Shigeyuki Hirai, Paul Janssens, wangsai, Gavan Fantom, Matthew Baker, Rob Ryan, Fred Steinhaeuser, Terry Burton, chisj, vlad417, Petr, Hassan Hajji, Emmanuel Blot, ßlúèÇhîp, Heiko Becker, Gavin Andresen, David Binderman, ralgozino - bug report / suggestion
Something went wrong with that request. Please try again.