From 237d7c42498806a3ca205f63d151671a45304854 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 28 七月 2022 09:19:11 +0800
Subject: [PATCH] 1. 承诺书pdf生产模块

---
 src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 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..2c14d00 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/infrastructure/utils/FileUtil.kt
@@ -1,10 +1,21 @@
 package cn.flightfeather.supervision.infrastructure.utils
 
+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.ByteArrayInputStream
+import java.io.ByteArrayOutputStream
 import java.io.File
 import java.io.FileOutputStream
+import java.util.*
+import javax.imageio.ImageIO
 
 
-class FileUtil {
+object FileUtil {
+    private const val SCHEME_PNG = "data:image/png;base64,"
+
     @Throws(Exception::class)
     fun uploadFile(file: ByteArray, filePath: String, fileName: String) {
         val targetFile = File(filePath)
@@ -29,4 +40,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