接口地址 随机图片url
http://liflag.cn/tool/getImage.png
该接口从图像库中随机获取一个头像返回给用户
网站头像如果能用网络图片的话,则头像每次打开都是不一样的,动态变化头像
你可以看到,你刷新本文后,我的头像就不一样了
在文章中插入该接口作为图片url 刷新文章图片也会变化
原理
图片库中随机获取图片,下载到本地然后以流的形式返回给前台
核心代码
@GetMapping(value = "/getImage.png")
public void getImage(HttpServletRequest request, HttpServletResponse response) throws Exception {
JSONObject res = null;
Set<String> imgR = redisTemplate.opsForSet().distinctRandomMembers(KeyEnum.REDIS_JOKE_PIC.toString(),1);
Iterator cursor = imgR.iterator();
while (cursor.hasNext()) {
res = JSONObject.parseObject(cursor.next().toString());
}
String url = (String) res.get("img");
String name = url.substring(url.lastIndexOf("/")+1); //为下载的文件命名
String path = HttpUtils.download(url,name);
File file = new File(path);
OutputStream os = null;
try {
BufferedImage image = ImageIO.read(new FileInputStream(file));
response.setContentType("image/png");
os = response.getOutputStream();
if (image != null) {
ImageIO.write(image, "png", os);
}
} catch (IOException e) {
} finally {
if (os != null) {
os.flush();
os.close();
}
file.delete();
}
}
注意:本文归作者所有,未经作者允许,不得转载