Думаю, вы не копируете метаданные изображения, здесь приведен упрощенный пример того, как это можно сделать:
ImageInputStream iis =ImageIO.createImageInputStream(new File("test.jpg"));
ImageReader reader = (ImageReader) ImageIO.getImageReaders(iis).next();
reader.setInput(iis, true);
IIOMetadata meta = reader.getImageMetadata(0);
BufferedImage image = reader.read(0);
/*
do image manipulations here
*/
ImageOutputStream ios = ImageIO.createImageOutputStream(new File("out.jpg"));
ImageWriter writer = ImageIO.getImageWriter(reader);
writer.setOutput(ios);
writer.write(meta, new IIOImage(image, null, null), null);
Поскольку вы не предоставили никаких конкретных сведений, я проверил ихна локальных файлах.Тем не менее, я надеюсь, что это дает вам подсказку.