Прошло много времени, но это все еще может быть полезно кому-то: Apache Commons имеет библиотеку под названием Sanselan , подходящую для этой задачи. Это немного устарело, и документация скудна, но, тем не менее, хорошо справляется со своей задачей:
File file = new File("path/to/your/file");
// Get XMP xml data from a file
String xml = Sanselan.getXmpXml(file);
// Process the XML data
xml = processXml(xml);
// Write XMP xml data from a file
Map params = new HashMap();
params.put(Sanselan.PARAM_KEY_XMP_XML, xml);
BufferedImage image = Sanselan.getBufferedImage(file);
Sanselan.writeImage(image, file, Sanselan.guessFormat(file), params);
Возможно, вам придется быть осторожным с многостраничными TIFF, потому что Sanselan.getBufferedImage
, вероятно, получит только первое (поэтому будет записано только первое).