OutOfMemoryError при изменении размера больших изображений с использованием миниатюр в Java (ограничение размера кучи)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 OutOfMemoryError при изменении размера больших изображений с использованием миниатюр в Java (ограничение размера кучи)

Сообщение Anonymous »

Я сталкиваюсь с ошибкой java.lang.OutOfMemoryError при попытке изменить размер больших изображений с помощью зависимости Thumbnailator в Springboot. Размер моей кучи ограничен значениями -Xms256m -Xmx512m, и я считаю, что проблема возникает из-за размера обрабатываемых изображений.
Ниже приведен фрагмент кода, который я использую. чтобы изменить размер и сжать изображения:

Код: Выделить всё

   private static void compressImage(File file) throws IOException {
Path tempFile = Files.createTempFile("temp", ".jpg");
try {
Thumbnails.of(file)
.rotate(0)
.scale(0.75f)
.outputQuality(0.9f)
.outputFormat("jpg")
.toFile(tempFile.toFile());

Files.move(tempFile, file.toPath(), StandardCopyOption.REPLACE_EXISTING);
} finally {
Files.deleteIfExists(tempFile);
}
}
Сведения об ошибке:

Код: Выделить всё

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
Зависимость Maven

net.coobird
thumbnailator
0.4.20

Размер кучи:
-Xms256m -Xmx512m
Вопросы:< /strong>
  • Как я могу оптимизировать свой текущий подход для обработки изменения размера больших изображений в рамках заданных ограничений памяти?
  • Есть ли лучший способ обработки больших файлов изображений с помощью библиотеки миниатюр или любых альтернативных библиотек?
Будем признательны за любые предложения и рекомендации!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -heap-size
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»