|
@@ -15,9 +15,16 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.FileCopyUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
+import javax.imageio.ImageIO;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.awt.*;
|
|
|
+import java.awt.image.BufferedImage;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.util.HashMap;
|
|
@@ -301,7 +308,8 @@ public class DingUserServiceImpl implements IDingUserService {
|
|
|
closeableHttpResponse = getClient.getB();
|
|
|
HttpEntity entity = closeableHttpResponse.getEntity();
|
|
|
InputStream is = entity.getContent();
|
|
|
- FileCopyUtils.copy(is, response.getOutputStream());
|
|
|
+ BufferedImage bufferedImage = compressImage(is, 1200);
|
|
|
+ ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}finally {
|
|
@@ -316,6 +324,17 @@ public class DingUserServiceImpl implements IDingUserService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void downloadFileByTest(MultipartFile file, HttpServletResponse response){
|
|
|
+ try{
|
|
|
+ InputStream inputStream = file.getInputStream();
|
|
|
+ BufferedImage bufferedImage = compressImage(inputStream, 1200);
|
|
|
+ ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
|
|
|
+ }catch (IOException ex){
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Integer getCompressNumByImg() {
|
|
|
return compressNum;
|
|
@@ -379,5 +398,17 @@ public class DingUserServiceImpl implements IDingUserService {
|
|
|
return content.getObject("data", DingUser.class);
|
|
|
}
|
|
|
|
|
|
+ public static BufferedImage compressImage(InputStream inputStream, int width) throws IOException {
|
|
|
+ BufferedImage originalImage = ImageIO.read(inputStream);
|
|
|
+ int nW = originalImage.getWidth(), nH = originalImage.getHeight();
|
|
|
+ if(nW > width){
|
|
|
+ nW = width;
|
|
|
+ nH = nW * originalImage.getHeight() / originalImage.getWidth();
|
|
|
+ }
|
|
|
+ Image compressedImage = originalImage.getScaledInstance(nW, nH, Image.SCALE_SMOOTH);
|
|
|
+ BufferedImage outputImage = new BufferedImage(nW, nH, BufferedImage.TYPE_INT_RGB);
|
|
|
+ outputImage.createGraphics().drawImage(compressedImage, 0, 0, null);
|
|
|
+ return outputImage;
|
|
|
+ }
|
|
|
|
|
|
}
|