Jun 19, 2008

QR コードクラスライブラリ for Java にチャレンジ

QR コードクラスライブラリ for Java とは

QR コードクラスライブラリ for Java は、文字列から QR コードのデータを作成する Java 用のライブラリ。 ライブラリに文字列を渡すと boolean[][] の配列を返してくれる。 良く見かける QR コードの画像は boolean[][] から自前で作成する。

QR コードクラスライブラリ for Java
http://www.swetake.com/qr/java/qr_java.html

QR コードクラスライブラリ for Java で QR コード画像を作成してみる。

とりあえず ↓ の情報だけは一通り目を通すと良い。

QR コードクラスライブラリ for Java - API Document
http://www.swetake.com/qr/java/docs/index.html
QR Code.com - バージョンの決定
http://www.denso-wave.com/qrcode/vertable1.html
QR Code.com - コード領域の確定
http://www.denso-wave.com/qrcode/qrgene4.html

作成した画像をテストするには ↓ のツールを使用すると便利。

Psytec - QR Code Editor
http://www.psytec.co.jp/docomo.html

サンプルコード

// QRコードクラスライブラリ for Java の準備。
Qrcode qrcodeLogic = new Qrcode();
qrcodeLogic.setQrcodeEncodeMode('*');
qrcodeLogic.setQrcodeErrorCorrect('M');
qrcodeLogic.setQrcodeVersion(7);

// QR コードデータを作成。
byte[] targetBytes = target.getBytes();
boolean[][] qrcodeData = qrcodeLogic.calQrcode(targetBytes);

// QR コード画像用の BufferedImage を準備。
//   周りに 4cell 分のマージンを用意する。
BufferedImage image = new BufferedImage(size.getCellSize()
        * (qrcodeData[0].length + 8), size.getCellSize()
        * (qrcodeData[0].length + 8), BufferedImage.TYPE_INT_BGR);
Graphics g = image.getGraphics();
g.setColor(QRCODE_IMAGE_BACKGROUNDCOLOR);
g.fillRect(0, 0, image.getWidth(), image.getHeight());

// QR コードデータを画像に変換。
for (int i = 0; i < qrcodeData.length; i++) {
    for (int j = 0; j < qrcodeData[i].length; j++) {
        boolean cellFilled = qrcodeData[i][j];
        Color cellColor = cellFilled ? QRCODE_IMAGE_FOREGROUNDCOLOR
                : QRCODE_IMAGE_BACKGROUNDCOLOR;
        g.setColor(cellColor);
        g.fillRect(size.getCellSize() * (i + 4), size.getCellSize()
                * (j + 4), size.getCellSize(), size.getCellSize());
    }
}
g.dispose();

TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Library/20080619_01.trackback
Post a comment

writeback message: Ready to post a comment.