jFinal生成二维码直接输出到页面不以图片的形式保存

一:页面

二维码<br>

<img style="height: 180px; width: 180px" src="/gym/test" />

二:代码

public void test() {
HttpServletResponse response=getResponse();
String content = "胡姐姐你好,过年好";
GymService.me.encoderQRCoder(content, response);
renderJson(123);

}

service

public void encoderQRCoder(String content, HttpServletResponse response) {
try {
Qrcode handler = new Qrcode();
handler.setQrcodeErrorCorrect('M');
handler.setQrcodeEncodeMode('B');
handler.setQrcodeVersion(7);
byte[] contentBytes = content.getBytes("UTF-8");
BufferedImage bufImg = new BufferedImage(168, 168, BufferedImage.TYPE_INT_RGB);
Graphics2D gs = bufImg.createGraphics();
gs.setBackground(Color.WHITE);
gs.clearRect(0, 0, 168, 168);
gs.setColor(Color.BLACK);// 设定图像颜色:BLACK
int pixoff = 2; // 设置偏移量 不设置肯能导致解析出错
// 输出内容:二维码
if (contentBytes.length > 0 && contentBytes.length < 124) {
boolean[][] codeOut = handler.calQrcode(contentBytes);
for (int i = 0; i < codeOut.length; i++) {
for (int j = 0; j < codeOut.length; j++) {
if (codeOut[j][i]) {
gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
}
}
}
} else {
System.err.println("出错啦");
}
gs.dispose();
bufImg.flush();
ImageIO.write(bufImg, "jpg", response.getOutputStream());// 生成二维码QRCode图片


} catch (Exception e) {
e.printStackTrace();
}

}

三:结果


猜你喜欢

转载自blog.csdn.net/m0_37934074/article/details/79358955