XMP Utilities for Java (XMPUtil4J)


XMPUtil4J is a small library of XMP related utilities for Java. It is shipped with full source to ease debugging.

The work is based on various forum posts and an article about how to embed XMP in different file formats.


XMPUtil4J has been tested with Lightroom version 5.6 all the way up to Lightroom CC 2015.3.



  • Features
    • JpegXmpInputStream capable of returning XMP data from another InputStream containing JPEG data
  • Bugfixes
    • No longer attempts to read past end of file when JPEG has no XMP and ends with something that resembles an APP1 marker
    • JpegXmpInputStream.close() now also closes the JPEG stream


XMPUtil4J may be used in both commercial and non-commercial projects as long as I am notified and a link back to https://www.pkg.dk is present on the project web site. It may be distributed along with the project that uses it. All other form of distribution is not permitted without explicit permission. The source code of XMPUtil4J is available solely to aid in debugging and to serve as documentation where sufficient documentation is unavailable. The source code may not be embedded partly or in full without explicit permission. XMPUtil4J comes with no guarantee what so ever, so use at your own risk.


XMPUtil4J v0.1 (source | javadoc)