package com.xzx.gc.common.utils.image; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; /** * 生成二维码图片流 * * @author zhu * */ public class QRCodeUtil { public static BitMatrix generateQRCodeStream(String content,HttpServletResponse response) { //给相应添加头部信息,主要告诉浏览器返回的是图片流 response.setHeader("Cache-Control", "no-store"); // 不设置缓存 response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/png"); //设置图片的文字编码以及内边框 Map hints = new HashMap<>(); //编码 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //边框距 hints.put(EncodeHintType.MARGIN, 0); BitMatrix bitMatrix; try { //参数分别为:编码内容、编码类型、图片宽度、图片高度,设置参数 bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300,hints); }catch(WriterException e) { e.printStackTrace(); return null; } return bitMatrix; } }