1.图片验证码生成和转为base64格式字符串
(1).图片验证码生成代码链接
这是大佬的链接,说的非常详细。
https://blog.youkuaiyun.com/jadyer/article/details/12185725
(2).把生成的BufferedImage格式的图片转换为base64格式字符串
//bufferedImage 是生成的图片
BufferedImage bufferedImage = generateImageCode(verifyCode, 90, 30, 10, true, Color.WHITE, Color.BLACK, null);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
//参数内容为图片,图片后缀,流
ImageIO.write(bufferedImage, "jpg", stream);
byte[] bytes = stream.toByteArray();//转换成字节
BASE64Encoder encoder = new BASE64Encoder();
//转换成base64串
String png_base64 = encoder.encodeBuffer(bytes).trim();
//删除 \r\n
png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");
//返回的字符串头要拼接data:image/jpg;base64,在字符串前面,这样前台就可以直接在img的src里面直接使用该字符串
return Result.success(new LoginCodeVO("data:image/jpg;base64,"+png_base64));
注意,生成的base64字符串一定要拼接data:image/jpg;base64,在前面。这样前端才能直接使用该字符串,当然,交给前端去拼接也是可以的。