原理不多介绍, 后面会提供相关源码。 大致是按照google提供的Zxing包, 向服务端发出请求,直接输出为图片。
先截图看下使用的方式方法:
源码如下:
/**
* mgr_qr?method=qr_img&width=300&size=300&content=111
* @param request
* @param response
*/
public void qr_img(HttpServletRequest request,HttpServletResponse response){
int size = 110;
String str = request.getParameter(Const4DataBase.PARA_content);
ReturnData data = new ReturnData();
if (str == null || str.trim().length() == 0)
{
data.setStatus(001);
data.setMsg("please input qr content!");
printRes(response,data);
logger.info(data.getMsg());
return;
}
String size_str = request.getParameter(Const4DataBase.PARA_size);
try{
size = Integer.valueOf(size_str);
}
catch(Exception e)
{
//解析错误,
}
int height = size;
int width = size;
try {
BitMatrix byteMatrix;
byteMatrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, width, height);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
for(int x=0;x<width;x++){
for(int y=0;y<height;y++){
image.setRGB(x, y, byteMatrix.get(x, y)?BLACK:WHITE);
}
}
ImageIO.write(image, "png", response.getOutputStream());
} catch (Exception e) {
logger.error("error"+e);
}
}