どこ行ってもQRコードってあるよね。
ZXingを使って、QRコード画像を出力するサンプル
QRコード画像を出力します。とりあえずQRコードにはこのサイトのURLを入れてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class QRTest { public static void main(String[] args) { try { //エラー訂正レベル(H:30%,Q:25%,M:15%,L:7%)の設定 HashMap<EncodeHintType,ErrorCorrectionLevel> hints = new HashMap<EncodeHintType,ErrorCorrectionLevel>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); //QRコードの画像イメージを作成 QRCodeWriter writer = new QRCodeWriter(); BitMatrix bitMatrix = writer.encode("https://www.javalife.jp/", BarcodeFormat.QR_CODE, 200, 200, hints); BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix); //画像ファイルを出力 ImageIO.write(image, "png", new File("C:\\work\\qr.png")); } catch (IOException | WriterException e) { e.printStackTrace(); } } } |
実行結果
こんなQRコードの画像が出力されます。試しにスキャンしてみてくださいw
サンプルの解説
他のバーコードとほぼ同じようにQRコードの画像イメージを作成することができます。
他のバーコードのサンプル、ZXingの入手方法などはこちらをご覧ください。
エラー訂正レベルが最大なのでこんなことができます。
よく見かけるQRコードの中に絵が埋まっている、こんな感じの・・ですね。
ただし、このパーセント分だけコードから欠けても良いってわけではありません。