Commit 41ed8626 authored by liqin's avatar liqin 💬

bug fixed

parent 7c76de52
FROM openjdk:8-jdk-alpine
#FROM openjdk:8-jdk-alpine
FROM liumiaocn/jdk:ora8u201-alpine3.9-glibc2.29
USER root
MAINTAINER Danny Lee
VOLUME /opt
......
......@@ -13,6 +13,26 @@ import java.io.IOException;
public class ImageUtil {
/**
* JAVA添加文字水印
*
* @param srcImage 目标图片
* @param waterImage 水印图片
* @return
*/
public static byte[] watermarkImageSimple1(BufferedImage srcImage, BufferedImage waterImage) throws IOException {
int bgWidth = srcImage.getWidth(null);
int bgHeight = srcImage.getHeight(null);
BufferedImage image = new BufferedImage(bgWidth, bgHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(srcImage, 0, 0, bgWidth, bgHeight, null);
g.drawImage(waterImage, bgWidth - 150, bgHeight - 150, waterImage.getWidth(), waterImage.getHeight(), null);
g.dispose();
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", out);
return out.toByteArray();
}
/**
* JAVA添加文字水印
*
......@@ -28,7 +48,7 @@ public class ImageUtil {
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(null);
imgWriteParams.setCompressionMode(ImageWriteParam.MODE_DISABLED);
imgWriteParams.setCompressionQuality(1.0f);
//imgWriteParams.setCompressionQuality(1.0f);
imgWriteParams.setProgressiveMode(ImageWriteParam.MODE_DISABLED);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
IIOImage iIamge = new IIOImage(waterImage, null, null);
......@@ -62,7 +82,7 @@ public class ImageUtil {
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(null);
imgWriteParams.setCompressionMode(ImageWriteParam.MODE_DISABLED);
imgWriteParams.setCompressionQuality(1.0f);
//imgWriteParams.setCompressionQuality(1.0f);
imgWriteParams.setProgressiveMode(ImageWriteParam.MODE_DISABLED);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
IIOImage iIamge = new IIOImage(image, null, null);
......@@ -111,7 +131,7 @@ public class ImageUtil {
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(null);
// 要使用压缩,必须指定压缩方式为MODE_EXPLICIT
imgWriteParams.setCompressionMode(ImageWriteParam.MODE_DISABLED);
imgWriteParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
// 这里指定压缩的程度,参数qality是取值0~1范围内,
imgWriteParams.setCompressionQuality(1.0f);
imgWriteParams.setProgressiveMode(ImageWriteParam.MODE_DISABLED);
......
package cn.wisenergy.web.admin.controller.app;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import cn.wisenergy.common.utils.*;
import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UsersDto;
......@@ -14,6 +15,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -127,16 +132,24 @@ public class LoginController {
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户手机号", required = true, dataType = "String")
})
@PostMapping("/registerByQrCode")
public byte[] registerByQrCode(@RequestParam String userId, HttpServletRequest request) throws IOException {
User user = this.usersService.getById(userId);
@PostMapping(value = "/registerByQrCode")
public ResponseEntity<byte[]> registerByQrCode(@RequestParam("userId") String userId, HttpServletRequest request) throws IOException {
User user = this.usersService.getByUserId(userId);
if (user != null) {
String regFullUrl = request.getScheme() + "://" + request.getServerName() + ":"+request.getServerPort()
+ "/regist?beInvitedCode=" + user.getInviteCode();
final InputStream is = new ClassPathResource("templates/background.jpg").getInputStream();
BufferedImage srcImage = ImageIO.read(is);
BufferedImage waterImage = QrCodeUtil.generate(regFullUrl,100, 100);
return ImageUtil.watermarkImageSimple(srcImage, waterImage);
QrConfig config = new QrConfig(130, 130);
config.setMargin(0);
BufferedImage waterImage = QrCodeUtil.generate(regFullUrl,config);
byte[] bytes = ImageUtil.watermarkImageSimple1(srcImage, waterImage);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
headers.setContentLength(bytes.length);
return new ResponseEntity<>(bytes, headers, HttpStatus.OK);
}
return 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