diff --git a/face-search-core/src/main/java/com/visual/face/search/core/domain/ImageMat.java b/face-search-core/src/main/java/com/visual/face/search/core/domain/ImageMat.java index e61f2a8..2588dad 100644 --- a/face-search-core/src/main/java/com/visual/face/search/core/domain/ImageMat.java +++ b/face-search-core/src/main/java/com/visual/face/search/core/domain/ImageMat.java @@ -9,7 +9,6 @@ import org.opencv.dnn.Dnn; import org.opencv.highgui.HighGui; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; -import sun.misc.BASE64Decoder; import javax.imageio.ImageIO; import java.awt.*; @@ -20,6 +19,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.util.ArrayList; +import java.util.Base64; /** * 图片加载工具 @@ -66,8 +66,11 @@ public class ImageMat implements Serializable { public static ImageMat fromBase64(String base64Str){ InputStream inputStream = null; try { - BASE64Decoder decoder = new BASE64Decoder(); - byte[] data = decoder.decodeBuffer(base64Str); + // 新版本JDK被移除,替换为Base64.Decoder + // BASE64Decoder decoder = new BASE64Decoder(); + // byte[] data = decoder.decodeBuffer(base64Str); + Base64.Decoder decoder = Base64.getMimeDecoder(); + byte[] data = decoder.decode(base64Str); inputStream = new ByteArrayInputStream(data); return fromInputStream(inputStream); }catch (Exception e){ diff --git a/face-search-core/src/main/java/com/visual/face/search/core/utils/MatUtil.java b/face-search-core/src/main/java/com/visual/face/search/core/utils/MatUtil.java index 8757957..a43672d 100644 --- a/face-search-core/src/main/java/com/visual/face/search/core/utils/MatUtil.java +++ b/face-search-core/src/main/java/com/visual/face/search/core/utils/MatUtil.java @@ -1,10 +1,10 @@ package com.visual.face.search.core.utils; import org.opencv.core.Mat; -import sun.misc.BASE64Encoder; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; +import java.util.Base64; import java.util.Objects; public class MatUtil { @@ -42,8 +42,11 @@ public class MatUtil { byteArrayOutputStream = new ByteArrayOutputStream(); ImageIO.write(matToBufferedImage(mat), "jpg", byteArrayOutputStream); byte[] bytes = byteArrayOutputStream.toByteArray(); - BASE64Encoder encoder = new BASE64Encoder(); - return encoder.encodeBuffer(Objects.requireNonNull(bytes)); + // 新版本JDK被移除,替换为Base64.Encoder +// BASE64Encoder encoder = new BASE64Encoder(); +// return encoder.encodeBuffer(Objects.requireNonNull(bytes)); + Base64.Encoder encoder = Base64.getMimeEncoder(); + return encoder.encodeToString(Objects.requireNonNull(bytes)); }catch (Exception e){ throw new RuntimeException(e); }finally {