
XMP metadata parsing, manipulation and serialization with a compatible API, supports parsing from strings, configurable serialization options, and easy migration from original SDK imports.
This library is a port of Adobe's XMP SDK to Kotlin Multiplatform.
implementation("de.stefan-oltmann:xmpcore:1.7.0")
The library has been designed as a drop-in replacement for users who previously used XMP Core Java. Therefore, all the documentation applicable to the Java SDK also pertains to this library. However, please note that we have made the decision to remove the functionality for reading from and writing to ByteArray and InputStreams, as I believe it is unnecessary.
val originalXmp: String = "... your XMP ..."
val xmpMeta: XMPMeta = XMPMetaFactory.parseFromString(originalXmp)
val xmpSerializeOptions =
SerializeOptions()
.setOmitXmpMetaElement(false)
.setOmitPacketWrapper(false)
.setUseCompactFormat(true)
.setSort(true)
val newXmp = XMPMetaFactory.serializeToString(xmpMeta, xmpSerializeOptions)
Check out the Kotlin JVM example project.
For usage in Java projects check out the Java example project.
Also see the unit tests ReadXmpTest and WriteXmpTest to learn more about reading and manipulating data.
If you have previously used the official XMP Core Java library available on
Maven Central, please make sure to update your imports from com.adobe.internal.xmp
to de.stefan_oltmann.xmp.
Contributions to this project are welcome! If you encounter any issues, have suggestions for improvements, or would like to contribute new features, please feel free to submit a pull request.
The same BSD license applies to this project as to Adobe's open source XMP SDK, from which it is derived.
Note: The original license page went offline, but you can still find it on archive.org.
This library is a port of Adobe's XMP SDK to Kotlin Multiplatform.
implementation("de.stefan-oltmann:xmpcore:1.7.0")
The library has been designed as a drop-in replacement for users who previously used XMP Core Java. Therefore, all the documentation applicable to the Java SDK also pertains to this library. However, please note that we have made the decision to remove the functionality for reading from and writing to ByteArray and InputStreams, as I believe it is unnecessary.
val originalXmp: String = "... your XMP ..."
val xmpMeta: XMPMeta = XMPMetaFactory.parseFromString(originalXmp)
val xmpSerializeOptions =
SerializeOptions()
.setOmitXmpMetaElement(false)
.setOmitPacketWrapper(false)
.setUseCompactFormat(true)
.setSort(true)
val newXmp = XMPMetaFactory.serializeToString(xmpMeta, xmpSerializeOptions)
Check out the Kotlin JVM example project.
For usage in Java projects check out the Java example project.
Also see the unit tests ReadXmpTest and WriteXmpTest to learn more about reading and manipulating data.
If you have previously used the official XMP Core Java library available on
Maven Central, please make sure to update your imports from com.adobe.internal.xmp
to de.stefan_oltmann.xmp.
Contributions to this project are welcome! If you encounter any issues, have suggestions for improvements, or would like to contribute new features, please feel free to submit a pull request.
The same BSD license applies to this project as to Adobe's open source XMP SDK, from which it is derived.
Note: The original license page went offline, but you can still find it on archive.org.