From a2d81eff7490d9ef2e5fb45727ad86f7770c55cd Mon Sep 17 00:00:00 2001
From: feige <feige@qq.com>
Date: 星期一, 05 一月 2026 15:08:03 +0800
Subject: [PATCH] Merge branch 'master' of http://47.93.189.255:8099/r/zhangshi_app_backend
---
zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java | 70 +++++++++++++++++++++--------------
1 files changed, 42 insertions(+), 28 deletions(-)
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java b/zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java
index 7dc98db..ba24fd0 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java
@@ -75,7 +75,7 @@
* 澶勭悊鍥剧墖鏂囦欢
*/
public Map<String, Object> processImage(File file, int width, int height,
- float quality, String format,boolean deleteY) throws IOException {
+ float quality, String format) throws IOException {
Map<String, Object> result = new HashMap<>();
// 璇诲彇鍥剧墖
@@ -108,11 +108,6 @@
result.put("compressedHeight", height > 0 ? height : originalHeight);
result.put("base64", dataUrl);
result.put("message", "鍥剧墖鍘嬬缉鎴愬姛");
- if (deleteY) {
- file.delete();
- result.put("originalDeleted", false);
- result.put("message", "鍥剧墖鍘嬬缉鎴愬姛");
- }
return result;
}
@@ -225,29 +220,57 @@
}
/**
- * 鍘嬬缉涓篜NG鏍煎紡
+ * 鍘嬬缉涓篜NG鏍煎紡锛堝吋瀹规�т慨澶嶏級
*/
private void compressAsPng(BufferedImage image, ByteArrayOutputStream output, int compressionLevel)
throws IOException {
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("png");
if (!writers.hasNext()) {
- ImageIO.write(image, "png", output);
+ // 濡傛灉娌℃湁PNG缂栫爜鍣紝浣跨敤榛樿鏂瑰紡
+ boolean written = ImageIO.write(image, "png", output);
+ if (!written) {
+ throw new IOException("鏃犳硶鍐欏叆PNG鏍煎紡");
+ }
return;
}
ImageWriter writer = writers.next();
- ImageWriteParam param = writer.getDefaultWriteParam();
+ try {
+ ImageWriteParam param = writer.getDefaultWriteParam();
- // PNG鐨勫帇缂╃骇鍒紙0-9锛�0鏈�蹇絾鍘嬬缉鐜囦綆锛�9鏈�鎱絾鍘嬬缉鐜囬珮锛�
- if (compressionLevel >= 0) {
- param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
- param.setCompressionType("Deflate");
- param.setCompressionQuality(Math.max(0.0f, Math.min(1.0f, compressionLevel / 9.0f)));
+ // PNG鐨勫帇缂╃骇鍒紙0-9锛�0鏈�蹇絾鍘嬬缉鐜囦綆锛�9鏈�鎱絾鍘嬬缉鐜囬珮锛�
+ if (compressionLevel >= 0) {
+ try {
+ // 鍏堟鏌ユ槸鍚︽敮鎸佸帇缂╂ā寮�
+ if (param.canWriteCompressed()) {
+ param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+ // 妫�鏌ユ槸鍚︽敮鎸丏eflate鍘嬬缉绫诲瀷
+ String[] compressionTypes = param.getCompressionTypes();
+ if (compressionTypes != null) {
+ for (String type : compressionTypes) {
+ if ("Deflate".equalsIgnoreCase(type)) {
+ param.setCompressionType("Deflate");
+ break;
+ }
+ }
+ }
+ param.setCompressionQuality(Math.max(0.0f, Math.min(1.0f, compressionLevel / 9.0f)));
+ } else {
+ // 濡傛灉涓嶆敮鎸佸帇缂╋紝浣跨敤榛樿璁剧疆
+ log.debug("PNG缂栫爜鍣ㄤ笉鏀寔鍘嬬缉璁剧疆锛屼娇鐢ㄩ粯璁ゅ帇缂�");
+ }
+ } catch (UnsupportedOperationException e) {
+ // 鎹曡幏涓嶆敮鎸佺殑鎿嶄綔寮傚父锛岀户缁娇鐢ㄩ粯璁よ缃�
+ log.warn("PNG鍘嬬缉璁剧疆涓嶈鏀寔: {}", e.getMessage());
+ }
+ }
+
+ writer.setOutput(new MemoryCacheImageOutputStream(output));
+ writer.write(null, new IIOImage(image, null, null), param);
+
+ } finally {
+ writer.dispose();
}
-
- writer.setOutput(new MemoryCacheImageOutputStream(output));
- writer.write(null, new IIOImage(image, null, null), param);
- writer.dispose();
}
@@ -259,7 +282,7 @@
* 澶勭悊瑙嗛鏂囦欢锛氱敓鎴怋ase64缂栫爜鐨勫皝闈� (浣跨敤JavaCV)
*/
public Map<String, Object> processVideo(File file, int width, int height,
- float quality, String format, boolean deleteY) {
+ float quality, String format) {
Map<String, Object> result = new HashMap<>();
try {
@@ -300,15 +323,6 @@
log.error("瑙嗛灏侀潰鐢熸垚澶辫触", e);
result.put("success", false);
result.put("message", "灏侀潰鐢熸垚澶辫触: " + e.getMessage());
- } finally {
- // 娓呯悊涓存椂鏂囦欢
- if (deleteY && file != null && file.exists()) {
- try {
- file.delete();
- } catch (Exception e) {
- log.warn("鍒犻櫎涓存椂瑙嗛鏂囦欢鏃跺嚭閿�", e);
- }
- }
}
return result;
}
--
Gitblit v1.9.1