From fb795500f93ea4027f3a2f5243ba664d57f8cddd Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期五, 02 一月 2026 16:03:01 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java |    2 ++
 zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java |   48 ++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
index 1b01eba..26f2dfe 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
@@ -36,6 +36,8 @@
                         "localhost",
                         8087,
 
+
+
                     "http"
 
                 )
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 1b60a01..199569a 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
@@ -233,14 +233,50 @@
 
         // 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)));
+            try {
+                // 鍏堟鏌ユ槸鍚︽敮鎸佸帇缂╂ā寮�
+                if (param.canWriteCompressed()) {
+                    param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+
+                    // 妫�鏌ユ槸鍚︽敮鎸佸帇缂╃被鍨嬭缃�
+                    String[] compressionTypes = param.getCompressionTypes();
+                    if (compressionTypes != null && compressionTypes.length > 0) {
+                        // 灏濊瘯璁剧疆鍘嬬缉绫诲瀷
+                        String compressionType = compressionTypes[0];
+                        for (String type : compressionTypes) {
+                            if ("Deflate".equalsIgnoreCase(type) || "PNG".equalsIgnoreCase(type)) {
+                                compressionType = type;
+                                break;
+                            }
+                        }
+                        param.setCompressionType(compressionType);
+                    }
+
+                    // 璁剧疆鍘嬬缉璐ㄩ噺锛堝帇缂╃骇鍒浆鎹负0.0-1.0锛�
+                    float quality = Math.max(0.0f, Math.min(1.0f, compressionLevel / 9.0f));
+                    param.setCompressionQuality(quality);
+                } else {
+                    // 濡傛灉涓嶆敮鎸佸帇缂╂ā寮忥紝璁板綍璀﹀憡骞剁户缁娇鐢ㄩ粯璁よ缃�
+                    log.warn("PNG缂栫爜鍣ㄤ笉鏀寔鍘嬬缉妯″紡锛屼娇鐢ㄩ粯璁よ缃�");
+                }
+            } catch (UnsupportedOperationException e) {
+                // 鎹曡幏寮傚父锛岃褰曡鍛婏紝鐒跺悗浣跨敤榛樿璁剧疆缁х画
+                log.warn("璁剧疆PNG鍘嬬缉鍙傛暟澶辫触: {}锛屼娇鐢ㄩ粯璁よ缃�", e.getMessage());
+                // 閲嶇疆鍙傛暟涓洪粯璁ゅ��
+                param = writer.getDefaultWriteParam();
+            }
         }
 
-        writer.setOutput(new MemoryCacheImageOutputStream(output));
-        writer.write(null, new IIOImage(image, null, null), param);
-        writer.dispose();
+        try {
+            writer.setOutput(new MemoryCacheImageOutputStream(output));
+            writer.write(null, new IIOImage(image, null, null), param);
+        } catch (Exception e) {
+            log.warn("浣跨敤ImageWriter鍐欏叆PNG澶辫触: {}锛屽洖閫�鍒癐mageIO.write", e.getMessage());
+            // 鍥為��鍒扮畝鍗曠殑ImageIO.write
+            ImageIO.write(image, "png", output);
+        } finally {
+            writer.dispose();
+        }
     }
 
 

--
Gitblit v1.9.1