java 生成二维码并以流形式输出显示到页面上

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

action or controller中的方法:

public void encoderQRCoder() {
            String content="QRcode content";
            HttpServletResponse response = this.getResponse();
            try {

                Qrcode handler = new Qrcode();
                handler.setQrcodeErrorCorrect('M');
                handler.setQrcodeEncodeMode('B');
                handler.setQrcodeVersion(7);


                byte[] contentBytes = content.getBytes("UTF-8");
                BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);//大小
                Graphics2D gs = bufImg.createGraphics();

                gs.setBackground(Color.WHITE);
                gs.clearRect(0, 0, 140, 140);

                //设定图像颜色:BLACK
                gs.setColor(Color.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("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. ");
                }

                gs.dispose();
                bufImg.flush();

                //生成二维码QRCode图片
                ImageIO.write(bufImg, "jpg", response.getOutputStream());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

jsp页面:

 

 

这里直接到达页面就显示二维码了,使用的是Qrcode.jar.

转载于:https://my.oschina.net/WWWW23223/blog/687482

你可能感兴趣的:(java 生成二维码并以流形式输出显示到页面上)