java生成二维码—web方式

呈现效果

在文本框中输入字符,点击生成二维码按钮,调用后台生成二维码接口生成二维码并返回二维码 base64字符串,字符串中信息添加到 img标签 src属性中即可显示二维码图片。

前端代码实现

vue 文件代码

主要还是以实现功能为主,就没有做任何布局和美化

请求后台代码

import request from'../http'// 使用实例export functiongetQrCode (qrCodeText) {returnrequest({url: '/ming/getQrCode?qrCodeText=' + qrCodeText,method: 'get'})
}

后端代码实现

后端代码实现请参考之前文章: java生成二维码图片、转base64 - 掘金 (juejin.cn)
需要注意的是之前文章是直接写死的硬编码,这里是需要提供接口给前端,之前是介绍了两种方法生成二维码,这里需要使用的是第一种方法转 base64之后把字符串返回给前端。以下是修改过后的代码可供参考:
@RequestMapping("/getQrCode")
publicStringgetQrCode(@RequestParam String qrCodeText){String base64 = "";// 需要生成的二维码的文字、地址String QrCodeStr = qrCodeText;// 创建二维码try {Map charcter = new HashMap<>();// 设置字符集charcter.put(EncodeHintType.CHARACTER_SET, "UTF-8");// 设置二维码的四个参数   需要生成的字符串,类型设置为二维码,二维码宽度,二维码高度,字符串字符集BitMatrix bitMatrix = newMultiFormatWriter().encode(QrCodeStr, BarcodeFormat.QR_CODE, 500, 500, charcter);// 二维码像素,也就是上面设置的 500int width = bitMatrix.getWidth();int height = bitMatrix.getHeight();// 创建二维码对象BufferedImage image = newBufferedImage(width, height, BufferedImage.TYPE_INT_RGB);for (int x = 0; x < width; x++) {for (int y = 0; y < height; y++) {// 按照上面定义好的二维码颜色编码生成二维码image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);}}// 1、第一种方式// 生成的二维码图片对象转 base64ByteArrayOutputStream stream = newByteArrayOutputStream();// 设置图片的格式ImageIO.write(image, "png", stream);// 生成的二维码base64base64 = Base64.encode(stream.toByteArray());} catch (Exception e) {e.printStackTrace();}return base64;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部