Как удалить метаданные изображения из больших изображений без нехватки памяти в Java

Мне нужно удалить метаданные из изображений, но когда изображения слишком велики, я получаю OOM. Прямо сейчас я использую ImageIO для этого.

BufferedImage image = ImageIO.read(new File("image.jpg"));
ImageIO.write(image, "jpg", new File("image.jpg"));

Проблема в том чтоImageIO.read (...) будет читать весь файл в память, что вызывает OutOfMemory, когда я обрабатываю изображения слишком большого размера.

Я мог бы попробовать использовать CommonsImaging (https://commons.apache.org/proper/commons-imaging/sampleusage.html) но похоже, что он поддерживает только JPEG (класс ExifRewriter).

Изменение конфигурации памяти для виртуальной машины не вариант, и мне нужно поддерживать не только файлы JPEG.

Любые идеи, как сделать это, не вторгаясь в нехватку памяти?

Ответы на вопрос(1)

Ваш ответ на вопрос