以前QR码刚开始火的时候,曾试验过google的zxing project,解码是没问题的,编码没有范例代码,当时测试的时候发现其中的zxing.appspot.com工程是用来生成QR图片的,结果安装好运行之后才知道,它是通过chart.apis.google.com提供的接口来实现的。
最近因项目需要,花了点时间阅读zxing的javadoc,同时参考了网上的一些文章,写了一个servlet,可以完全取代chart.apis.google.com自行生成QR图片,有了这个servlet,不需要去访问google的服务器也可以在网页中内嵌URL在线显示QR图片了。
以下是servlet的代码:
package testQR;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
@SuppressWarnings("serial