XMP is stored in image files inside contiguous blocks of the file. The contents of those blocks is RDF/XML, the parsing of which is discussed elsewhere. This folder describes and provides example code for locating, inserting, and modifying the XMP blocks themselves.
Contents include
- Manual XMP block location and modification
- A guide to doing this by hand with imperative-style pseudocode
- A reference C implementation with header and minimal example usage
- AVIF, HEIC, JPEG2000
- GIF
- JPEG
- PNG
- SVG
- TIFF (read only)
- WEBP
- Unknown
- apply
<?xpacket?>
wrappers and space padding
- Guides to doing this with command-line tools:
- Exiftool
- exiv2
- ImageMagick
- Guides to doing this with various libraries
- Adobe XMP Toolkit (C++)
- exempi (C)
- Exiftool (Perl)
- others to be added ...