libqrencode
ダウンロード
GitHub の Releases でソースコードのパッケージを配布しています。そちらをご参照ください。
リポジトリ
Git リポジトリを GitHub で公開しています。
概要
libqrencode は QR コードを生成するための高速かつコンパクトなライブラリです。 QR コードは二次元バーコードの一種で、数字なら最大約7000桁、英数字だと最大約4000字を埋め込むことができ、また誤り訂正能力に優れています。

サンプル
本ライブラリは以下の特徴があります。
- 実行時にライブラリ本体以外の外部ファイルを必要としない
- 高速なシンボル生成
- データ列の自動解析
仕様
libqrencode は JIS X0510:2004 で規定される、QR コード モデル2 を生成します。ただし、JIS X0510:2004 の規定のうち以下に挙げる項目については、対応していません。
- ECI および FNC1 の埋め込み
- QR コード モデル 1
インストール
必要事項
一部のテストプログラムやユーティリティは SDL や PNG ライブラリを必要としますが、ライブラリ自体はそれらなしに使うことができます。
コンパイルとインストール
入手したソースコード中に “configure” スクリプトが含まれていない場合、まず“autogen.sh” を実行してそれを生成する必要があります。ソースコードを GitHub からダウンロードした場合にはこれは必須の手順です。このとき、いくつか追加でソフトウェアをインストールする必要がある場合があります。例えば、Ubuntu の場合、下記のパッケージをインストールしておく必要があります。
- autoconf
- automake
- autotools-dev
- libtool
- pkg-config
- libpng-dev
もし “configure” スクリプトがすでにある場合には、この手順は不要です。fukuchi.org からダウンロードしたソースコードにはこれが含まれているはずです。
これでライブラリやツールをコンパイルする準備が整いました。以下のコマンドを実行してください。
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
これでライブラリ本体とヘッダファイルがそれぞれ適切な場所にインストールされます。インストール先は通常だと /usr/local/lib および /usr/local/include に設定されますが、 configure スクリプトに適宜オプションを渡すことで変更できます。./configure –help とするとオプションの一覧が表示されます。
また、“qrencode” という名前のユーティリティツールが、/usr/local/bin にインストールされます。もしこのツールをインストールしたくない場合は、 configure 時に –without-tools というオプションを設定してください。
configure スクリプトがうまく動作しない場合は、CMake を試してみてください。
cmake .
make
テストプログラムも含めてコンパイルする場合には、configure スクリプトに “–with-tests” オプションを渡してください。CMake の場合は “-DWITH_TESTS=YES” となります。
使い方
ライブラリの基本的な使い方は、ヘッダファイル (qrencode.h) に記されています。 Doxygen を使うと、ヘッダファイルからマニュアルを生成することができます。
使用許諾
本ライブラリの著作権は、福地健太郎にあります。また、このライブラリは GNU Lesser General Public License (LGPL) の元で公開されています。同ライセンスに従って、貴方は自由に本ライブラリを再配布したり改変したりすることができます。細かい規定については LGPL を参照してください。
Copyright (C) 2006-2017 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
移植や他言語へのバインディング
libqrencode のパッケージには含まれませんが、いくつかのプログラミング言語用バインディングが公開されています。
- bitly’s pyqrencode (Python)
- libqrencode-ctypes (Python ctypes)
- haskell-qrencode (Haskell)
- harrisj’s qrencoder (Ruby)
- PHP QR Code (PHP)
- qrencode-ocaml (OCaml)
- qrencode.cr (Crystal)
- wrap_libqrencode (Eiffel)
- luaqrencode (Lua)
- vincascm/qrencode (Lua)
また、以下の環境にあわせた移植版が公開されています。
- qrencode-win32 (Microsoft Windows)
- vcpkg
- Homebrew
ACKNOWLEDGMENTS
QR コードはデンソーウェーブの登録商標です。
リード-ソロモン符号の符号化ルーチンは Phil Karn (KA9Q) の著作物です。
Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
すべての貢献者のリストは README.md をご覧ください。
参考
- QRコードドットコム
- 日本工業標準調査会 - JIS 規格を検索・閲覧できる
- swetake.com - Perl・PHP・Ruby・Java による QR コード生成ライブラリ実装
- ZXing - multi-format 1D/2D barcode image processing library implemented in Java
- Open Source QR Code Library - QR Code decode/encode library for Java (J2SE, J2ME MIDP2.0/CLDC1.0)
- Quirc - QR Code decoding library implemented with C.
- QR Code generator library - more compact code and less heap memory usage.
( 更新)