Browse Source

图片压缩

xiongzhu 4 năm trước cách đây
mục cha
commit
fc861f85d3

+ 12 - 4
install-jar.sh

@@ -1,8 +1,16 @@
 
 mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file \
--DgroupId=com.dingtalk \
--DartifactId=client-sdk.api \
+-DgroupId=org.libjpegturbo \
+-DartifactId=mozjpeg4j \
 -Dpackaging=jar \
--Dversion=1.0.2 \
--Dfile=lib/client-sdk.api-1.0.2.jar \
+-Dversion=1.1 \
+-Dfile=lib/mozjpeg4j-1.1.jar \
+-DlocalRepositoryPath=libs
+
+mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file \
+-DgroupId=org.pngquant \
+-DartifactId=pngquant4j \
+-Dpackaging=jar \
+-Dversion=1.0 \
+-Dfile=lib/pngquant4j-1.0.jar \
 -DlocalRepositoryPath=libs

BIN
lib/mozjpeg4j-1.1.jar


BIN
lib/pngquant4j-1.0.jar


BIN
libs/org/libjpegturbo/mozjpeg4j/1.1/mozjpeg4j-1.1.jar


+ 9 - 0
libs/org/libjpegturbo/mozjpeg4j/1.1/mozjpeg4j-1.1.pom

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.libjpegturbo</groupId>
+  <artifactId>mozjpeg4j</artifactId>
+  <version>1.1</version>
+  <description>POM was created from install:install-file</description>
+</project>

+ 12 - 0
libs/org/libjpegturbo/mozjpeg4j/maven-metadata-local.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>org.libjpegturbo</groupId>
+  <artifactId>mozjpeg4j</artifactId>
+  <versioning>
+    <release>1.1</release>
+    <versions>
+      <version>1.1</version>
+    </versions>
+    <lastUpdated>20210319095742</lastUpdated>
+  </versioning>
+</metadata>

BIN
libs/org/pngquant/pngquant4j/1.0/pngquant4j-1.0.jar


+ 9 - 0
libs/org/pngquant/pngquant4j/1.0/pngquant4j-1.0.pom

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.pngquant</groupId>
+  <artifactId>pngquant4j</artifactId>
+  <version>1.0</version>
+  <description>POM was created from install:install-file</description>
+</project>

+ 12 - 0
libs/org/pngquant/pngquant4j/maven-metadata-local.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>org.pngquant</groupId>
+  <artifactId>pngquant4j</artifactId>
+  <versioning>
+    <release>1.0</release>
+    <versions>
+      <version>1.0</version>
+    </versions>
+    <lastUpdated>20210319095744</lastUpdated>
+  </versioning>
+</metadata>

+ 11 - 0
pom.xml

@@ -270,6 +270,17 @@
             <version>1.6.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.libjpegturbo</groupId>
+            <artifactId>mozjpeg4j</artifactId>
+            <version>1.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.pngquant</groupId>
+            <artifactId>pngquant4j</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
 </project>

+ 8 - 0
src/main/java/com/izouma/awesomeAdmin/utils/ImageUtils.java

@@ -0,0 +1,8 @@
+package com.izouma.awesomeAdmin.utils;
+
+public class ImageUtils {
+
+    public static void compressJpg() {
+
+    }
+}

BIN
src/main/resources/libimagequant/libimagequant.jnilib


+ 4 - 4
src/main/resources/templates/EditViewTemplate.ftl

@@ -95,11 +95,11 @@
                         </el-form-item>
                     </#list>
                     <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" size="default"
-                                   type="primary">保存
+                        <el-button @click="onSave" :loading="saving" type="primary">
+                            保存
                         </el-button>
-                        <el-button @click="onDelete" :loading="saving" size="default"
-                                   type="danger" v-if="formData.id">删除
+                        <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">
+                            删除
                         </el-button>
                         <el-button @click="$router.go(-1)" size="default">取消</el-button>
                     </el-form-item>

+ 32 - 0
src/test/java/com/izouma/awesomeAdmin/CommonTest.java

@@ -3,20 +3,32 @@ package com.izouma.awesomeAdmin;
 import com.izouma.awesomeAdmin.domain.BaseEntity;
 import com.izouma.awesomeAdmin.domain.User;
 import com.izouma.awesomeAdmin.web.BaseController;
+import lombok.SneakyThrows;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.text.CaseUtils;
+import org.apache.poi.util.TempFile;
 import org.junit.Test;
+import org.libjpegturbo.turbojpeg.processor.api.ImageProcessInfo;
+import org.libjpegturbo.turbojpeg.processor.api.ImageProcessor;
+import org.libjpegturbo.turbojpeg.processor.impl.ImageProcessorImpl;
+import org.libjpegturbo.turbojpeg.processor.utils.ImageProcessorUtils;
+import org.pngquant.Image;
+import org.pngquant.PngQuant;
+import org.pngquant.Result;
 import org.reflections.ReflectionUtils;
 import org.reflections.Reflections;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.util.FileCopyUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.imageio.ImageIO;
 import java.awt.*;
 import java.awt.font.FontRenderContext;
 import java.awt.geom.AffineTransform;
+import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.nio.charset.StandardCharsets;
@@ -140,4 +152,24 @@ public class CommonTest {
         System.out.println(password);
     }
 
+    @SneakyThrows
+    @Test
+    public void pngquant() {
+        PngQuant pngQuant = new PngQuant();
+        ImageIO.write(pngQuant
+                        .getRemapped(ImageIO.read(new File("/Users/drew/Downloads/国内申请-案件新增(客户经理).png"))),
+                "png", new File("/Users/drew/Downloads/111.png"));
+    }
+
+    @SneakyThrows
+    @Test
+    public void mozjpeg() {
+        File out = TempFile.createTempFile("kljasdlkhfasldg", ".jpg");
+        ImageProcessor processor = new ImageProcessorImpl();
+        ImageProcessInfo processInfo = ImageProcessInfo.fromMap(ImageProcessorUtils.compressImage(processor,
+                new File("/Users/drew/Downloads/2020-09-08-17-07-21zwBhaHeQ.jpg"),
+                out, 75));
+        FileCopyUtils.copy(out, new File("/Users/drew/Desktop/111.jpg"));
+        System.out.println(out);
+    }
 }