From 196bb14112448857a885e32dc4149e308e00b01a Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 15 八月 2024 11:57:15 +0800
Subject: [PATCH] 2024.8.15 各项修正

---
 src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt |   45 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt
index 6b858bf..d52a0a0 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt
@@ -1,11 +1,19 @@
 package cn.flightfeather.supervision.infrastructure.utils
 
-import java.io.File
-import java.io.FileOutputStream
+import net.coobird.thumbnailator.Thumbnails
+import net.coobird.thumbnailator.tasks.io.FileImageSource
+import org.springframework.util.Base64Utils
+import java.awt.Image
+import java.awt.image.BufferedImage
+import java.io.*
+import java.util.*
+import javax.imageio.ImageIO
 
 
-class FileUtil {
-    @Throws(Exception::class)
+object FileUtil {
+    private const val SCHEME_PNG = "data:image/png;base64,"
+
+    @Throws(FileNotFoundException::class)
     fun uploadFile(file: ByteArray, filePath: String, fileName: String) {
         val targetFile = File(filePath)
         if (!targetFile.exists()) {
@@ -15,6 +23,17 @@
         out.write(file)
         out.flush()
         out.close()
+    }
+
+    fun deleteFile(path: String) {
+        val targetFile = File(path)
+        if (targetFile.exists()) {
+            try {
+                targetFile.delete()
+            } catch (e: SecurityException) {
+                e.printStackTrace()
+            }
+        }
     }
 
     /**
@@ -29,4 +48,22 @@
         }
         return ""
     }
+
+    /**
+     * 鎸夌収鍥哄畾瀹藉害鍘嬬缉鍥剧墖鑷砨ase64褰㈠紡
+     */
+    fun compressImage2(bytes: ByteArray, w: Int): String {
+        val input = ByteArrayInputStream(bytes)
+        val srcImg = ImageIO.read(input)
+        val srcW = srcImg.width
+        val scale = w.toFloat() / srcW
+        val h = (srcImg.height * scale).toInt()
+
+        val buffImg = BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB)
+        buffImg.graphics.drawImage(srcImg.getScaledInstance(w, h, Image.SCALE_SMOOTH), 0, 0, null)
+        val out = ByteArrayOutputStream()
+        ImageIO.write(buffImg, "PNG", out)
+
+        return SCHEME_PNG + Base64.getEncoder().encodeToString(out.toByteArray())
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3