Browse Source

透明背景色处理

chunping 3 years ago
parent
commit
9f5152ee93

+ 3 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/common/FileUploadController.java

@@ -4,6 +4,7 @@ package com.qs.mp.web.controller.common;
 import com.alibaba.druid.sql.visitor.functions.If;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.enums.PicHandlerTypeEnum;
+import com.qs.mp.common.filter.ThumbnailsImgFilter;
 import com.qs.mp.common.qcloud.QcloudFileUtils;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
@@ -259,9 +260,9 @@ public class FileUploadController extends BaseApiController {
             // 压缩图片
             if (pWidth > 500) {
                 float scale = 500f / pWidth;
-                Thumbnails.of(outFilePath).scale(scale).outputQuality(0.8f).toFile(outFilePath);
+                Thumbnails.of(outFilePath).addFilter(new ThumbnailsImgFilter()).scale(scale).outputQuality(0.8f).toFile(outFilePath);
             }else {
-                Thumbnails.of(outFilePath).scale(1f).outputQuality(0.8f).toFile(outFilePath);
+                Thumbnails.of(outFilePath).addFilter(new ThumbnailsImgFilter()).scale(1f).outputQuality(0.8f).toFile(outFilePath);
             }
 
 

+ 25 - 0
mp-common/src/main/java/com/qs/mp/common/filter/ThumbnailsImgFilter.java

@@ -0,0 +1,25 @@
+package com.qs.mp.common.filter;
+
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import net.coobird.thumbnailator.filters.ImageFilter;
+
+/**
+ * @author zhongcp
+ * @Date 2022/4/16
+ */
+public class ThumbnailsImgFilter implements ImageFilter {
+  @Override
+  public BufferedImage apply(BufferedImage img) {
+    int w = img.getWidth();
+    int h = img.getHeight();
+    BufferedImage newImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
+    Graphics2D graphic = newImage.createGraphics();
+    graphic.setColor(Color.white);//背景设置为白色
+    graphic.fillRect(0, 0, w, h);
+    graphic.drawRenderedImage(img, null);
+    graphic.dispose();
+    return newImage;
+  }
+}

+ 3 - 2
mp-quartz/src/main/java/com/qs/mp/quartz/task/CosTask.java

@@ -7,6 +7,7 @@ import com.qcloud.cos.exception.CosServiceException;
 import com.qcloud.cos.model.*;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.enums.PicHandlerTypeEnum;
+import com.qs.mp.common.filter.ThumbnailsImgFilter;
 import com.qs.mp.common.qcloud.QcloudFileUtils;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
@@ -147,9 +148,9 @@ public class CosTask {
 
             float scale = 500f / pWidth;
 
-            Thumbnails.of(outFilePath).scale(scale).outputQuality(0.8f).toFile(outFilePath);
+            Thumbnails.of(outFilePath).addFilter(new ThumbnailsImgFilter()).scale(scale).outputQuality(0.8f).toFile(outFilePath);
         }else {
-            Thumbnails.of(outFilePath).scale(1f).outputQuality(0.8f).toFile(outFilePath);
+            Thumbnails.of(outFilePath).addFilter(new ThumbnailsImgFilter()).scale(1f).outputQuality(0.8f).toFile(outFilePath);
         }