@RequestMapping(value = "/weChatImage",method = RequestMethod.GET)public Response weChatimage(@RequestParam(required=false) int width,@RequestParam(required=false) int height,@RequestParam(required = false) String redirect, HttpServletResponse response) throws Exception{ String code = java.util.UUID.randomUUID().toString(); String code_url = SystemProperties.getValue("ucenter.out.url")+"/weChat/scanCode?state="+code; //String code_url = "http://localhost:8080/weChat/scanCode?state="+code; Map<String,Object> map1 = new HashMap<>(); map1.put("redirect",redirect); redis.opsForValue().set(code,JSON.toJSONString(map1),7,TimeUnit.DAYS); if(width == 0){ width = 200;//寬度 } if(height == 0){ height = 200;//高度 } Map<EncodeHintType,Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //生成矩陣 BitMatrix bitMatrix = new MultiFormatWriter().encode(code_url, BarcodeFormat.QR_CODE, width, height, hints); //字節數組輸出流 ByteArrayOutputStream imageOut = new ByteArrayOutputStream(); MatrixToImageWriter.writeToStream(bitMatrix, "png", imageOut); //字節數組輸入流 ByteArrayInputStream imageIn = new ByteArrayInputStream(imageOut.toByteArray()); BufferedImage bImage = ImageIO.read(imageIn); ByteArrayOutputStream bs =new ByteArrayOutputStream(); ImageIO.write(bImage, "png", bs); String base64 = "data:image/png;base64,"+Base64.byteArrayToBase64(bs.toByteArray()); Map<String,Object> map = new HashMap<>(); map.put("base64",base64); map.put("url",code_url); map.put("code",code); return Response.newInstance().setStatus(Response.SUCCESS).setBody(map);}