So entfernen Sie Bildmetadaten aus großen Bildern, ohne in Java über genügend Speicherplatz zu verfügen

Ich muss Metadaten aus Bildern entfernen, aber wenn die Bilder zu groß sind, erhalte ich OOM. Im Moment benutze ich dafür ImageIO.

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

Problem ist das ImageIO.read (...) liest die gesamte Datei in den Speicher, was zu OutOfMemory führt, wenn ich zu große Bilder bearbeite.

Ich könnte versuchen, CommonsImaging https: //commons.apache.org/proper/commons-imaging/sampleusage.htm) Sieht aber so aus, als ob es nur JPEG (ExifRewriter-Klasse) unterstützt.

Das Ändern der Speicherkonfiguration für die VM ist keine Option, und ich muss mehr als nur JPEG-Dateien unterstützen.

Haben Sie eine Idee, wie Sie dies tun können, ohne dass Ihnen der Speicher ausgeht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage