From 86384846e317381e7bb9e31ee76760e4ecb3ee67 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Mon, 29 Jul 2024 11:49:57 +0800
Subject: [PATCH] 新增2m压缩图,修改喇叭功能,修改面状航线的修改接口
---
src/main/java/com/dji/sample/territory/utils/ImgZipUtil.java | 39 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/dji/sample/territory/utils/ImgZipUtil.java b/src/main/java/com/dji/sample/territory/utils/ImgZipUtil.java
index 365d195..dd75f12 100644
--- a/src/main/java/com/dji/sample/territory/utils/ImgZipUtil.java
+++ b/src/main/java/com/dji/sample/territory/utils/ImgZipUtil.java
@@ -1,5 +1,7 @@
package com.dji.sample.territory.utils;
+import com.dji.sample.media.service.impl.FileServiceImpl;
+
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
@@ -22,7 +24,7 @@
BufferedImage image = ImageIO.read(inputFile);
// 计算目标图片的尺寸
- long targetSizeBytes = targetSizeKB * 1024;
+ long targetSizeBytes = targetSizeKB * 1024L;
long originalSizeBytes = getImageSize(image);
double compressionRatio = (double) targetSizeBytes / originalSizeBytes;
int targetWidth = (int) (image.getWidth() * Math.sqrt(compressionRatio));
@@ -54,4 +56,39 @@
return 0;
}
}
+
+ /**
+ * 图片压缩
+ *
+ * @param originalImageFile
+ * @param compressionQuality 图片压缩质量 0-1
+ * @return
+ * @throws IOException
+ */
+ public static File compressImageAndGetFile(File originalImageFile, float compressionQuality) throws IOException {
+ BufferedImage originalImage = ImageIO.read(originalImageFile);
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+ ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
+ try (ImageOutputStream ios = new MemoryCacheImageOutputStream(baos)) {
+ writer.setOutput(ios);
+ ImageWriteParam param = writer.getDefaultWriteParam();
+ param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+ param.setCompressionQuality(compressionQuality);
+ writer.write(null, new javax.imageio.IIOImage(originalImage, null, null), param);
+ } finally {
+ writer.dispose();
+ }
+ InputStream in = new ByteArrayInputStream(baos.toByteArray());
+ File tempFile = File.createTempFile("compressed-", ".jpg");
+ tempFile.deleteOnExit();
+ Files.copy(in, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
+ return tempFile;
+ }
+ }
+
+ public static void main(String[] args) throws IOException {
+ String name="test/瑞金图片.jpeg";
+ File file=compressImageAndGetFile(new File("D:\\ideawork\\used-car\\src\\main\\resources\\DJI_20240712113312_0007_V_航点dkbh2_null.jpeg"),0.5F);
+ FileServiceImpl.uploadFile("http://139.196.74.78:9000", "sxkj", "sxkj2024", "cloud-bucket", name, file, "image/jpeg");
+ }
}
--
Gitblit v1.9.3