Commit f5cd3cad authored by Administrator's avatar Administrator

小程序二维码高清下载

parent d8b90eac
......@@ -84,20 +84,20 @@ public class ResourcesController {
response.addHeader("Content-Disposition", "attachment; filename=qrcode.jpg");
JSONObject obj = new JSONObject();
obj.put("scene", "raceId=" + cmptid);
obj.put("width", "1280");
String partnerId = cmptService.getPartnerId(cmptid);
// 重新获取小程序access_token
String accessToken = getMicroAccessToken(partnerId);
ResponseEntity<org.springframework.core.io.Resource> resourceResponseEntity = restTemplate.postForEntity(
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="
+ accessToken , obj.toString(), org.springframework.core.io.Resource.class);
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken , obj.toString(), org.springframework.core.io.Resource.class);
Cmpt cmpt = cmptService.queryCmptBycmptId(cmptid);
if(resourceResponseEntity.getBody().getInputStream() != null){
BufferedImage bg = ImageIO.read(resourceResponseEntity.getBody().getInputStream());
BufferedImage qr = ImageIO.read(new URL(cmpt.getLogo()));
overlapImage(bg, qr, response);
overlapImageHD(bg, qr, response);
}else{
log.info("=====获取小程序码为空:"+resourceResponseEntity.getBody().toString());
}
......@@ -109,7 +109,7 @@ public class ResourcesController {
BufferedImage background = resizeImage(300, 300, bg);
BufferedImage qrCode = resizeImage(140, 140, qrCodeIps);
qrCode = converToRadius(qrCode);
qrCode = converToRadius(qrCode,140,140);
qrCode.createGraphics().setBackground(Color.WHITE);
Graphics2D g = background.createGraphics();
//在背景图片上添加二维码图片
......@@ -122,8 +122,27 @@ public class ResourcesController {
return null;
}
private static BufferedImage converToRadius(BufferedImage image) {
BufferedImage output = new BufferedImage(140, 140,
public static String overlapImageHD(BufferedImage bg, BufferedImage qrCodeIps, HttpServletResponse response) {
try {
//设置图片大小
BufferedImage background = resizeImage(1200, 1200, bg);
BufferedImage qrCode = resizeImage(560, 560, qrCodeIps);
qrCode = converToRadius(qrCode,560,560);
qrCode.createGraphics().setBackground(Color.WHITE);
Graphics2D g = background.createGraphics();
//在背景图片上添加二维码图片
g.drawImage(qrCode, 320, 320, qrCode.getWidth(), qrCode.getHeight(), null);
g.dispose();
ImageIO.write(background, "jpg", response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static BufferedImage converToRadius(BufferedImage image, int width, int height) {
BufferedImage output = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = output.createGraphics();
......@@ -131,8 +150,8 @@ public class ResourcesController {
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(Color.WHITE);
g2.fill(new RoundRectangle2D.Float(0, 0, 140, 140, 140,
140));
g2.fill(new RoundRectangle2D.Float(0, 0, width, height, width,
height));
g2.setComposite(AlphaComposite.SrcAtop);
g2.drawImage(image, 0, 0, null);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment