Java简单生成二维码

<

div id=”content” contentScore=”2947″>二维码简介

二维条码/二维码(2-dimensional bar code,QRCode)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

Java生成QRCode

Zebra Crossing(ZXing)是一个可以在大多数平台(Android、JavaSE、iPhone、RIM、Symbian)中用来生成、解析QR码的开源库。而QRGen是在ZXing基础上开发,这个库使得利用Java生成QR码变为小菜一碟。它需要依赖ZXing,所以生成图案时你同时需要ZXing和QRGen的jar包。

在pom.xml添加qrcode的依赖:


    net.glxn
    qrgen
    1.4

 
然后在Maven Dependencies中会自动下载如下3个jar包:

  • qrgen-1.4.jar
  • javase-3.0.0.jar
  • core-3.0.0.jar

接下来就是写一段Java程序来生成QRCode了,大致说来就是设置好二维码中的内容,然后调用qrgen的API来生成image/png格式的内容,既可以保存为图片文件,还可以在网页上直接显示该QRCode。

Java代码如下所示,QRCode的内容是一个Linux公社的链接:

package com.test.qrcode;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import net.glxn.qrgen.QRCode;
import net.glxn.qrgen.image.ImageType;
public class QRCodeService
{
    public static void main(String[] args)
    {
        String qrcodeContent = “http://www.linuxidc.com/”;
        ByteArrayOutputStream out = QRCode.from(qrcodeContent).to(ImageType.PNG).stream();
        try
        {
            FileOutputStream fout = new FileOutputStream(new File(“D:/Download/QR_Code.jpg”));
            fout.write(out.toByteArray());
            fout.flush();
            fout.close();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}
 
打开保存的图片文件,就可以看到生成的Linux公社链接的二维码了:

Java简单生成二维码
 
至此,一个简单的Java生成二维码的样例就演示完了,可以借助qrgen的API的强大功能,实现我们特定的需求,例如:在网页中动态为用户生成二维砼/div>