Exiv2 maps and will convert Exif tags and IPTC datasets to and from XMP properties.
This function is available via the import/export command line options: exiv2 -eX image.jpg; exiv2 -iX image.jpg
and via the exiv2 API: convert.hpp File Reference
| Between Exif tags or Iptc datasets | and XMP properties | 
|---|---|
| Exif.Image.ImageWidth | Xmp.tiff.ImageWidth | 
| Exif.Image.ImageLength | Xmp.tiff.ImageLength | 
| Exif.Image.BitsPerSample | Xmp.tiff.BitsPerSample | 
| Exif.Image.Compression | Xmp.tiff.Compression | 
| Exif.Image.PhotometricInterpretation | Xmp.tiff.PhotometricInterpretation | 
| Exif.Image.Orientation | Xmp.tiff.Orientation | 
| Exif.Image.SamplesPerPixel | Xmp.tiff.SamplesPerPixel | 
| Exif.Image.PlanarConfiguration | Xmp.tiff.PlanarConfiguration | 
| Exif.Image.YCbCrSubSampling | Xmp.tiff.YCbCrSubSampling | 
| Exif.Image.YCbCrPositioning | Xmp.tiff.YCbCrPositioning | 
| Exif.Image.XResolution | Xmp.tiff.XResolution | 
| Exif.Image.YResolution | Xmp.tiff.YResolution | 
| Exif.Image.ResolutionUnit | Xmp.tiff.ResolutionUnit | 
| Exif.Image.TransferFunction | Xmp.tiff.TransferFunction | 
| Exif.Image.WhitePoint | Xmp.tiff.WhitePoint | 
| Exif.Image.PrimaryChromaticities | Xmp.tiff.PrimaryChromaticities | 
| Exif.Image.YCbCrCoefficients | Xmp.tiff.YCbCrCoefficients | 
| Exif.Image.ReferenceBlackWhite | Xmp.tiff.ReferenceBlackWhite | 
| Exif.Image.DateTime | Xmp.xmp.ModifyDate | 
| Exif.Image.ImageDescription | Xmp.dc.description | 
| Exif.Image.Make | Xmp.tiff.Make | 
| Exif.Image.Model | Xmp.tiff.Model | 
| Exif.Image.Software | Xmp.tiff.Software | 
| Exif.Image.Artist | Xmp.dc.creator | 
| Exif.Image.Rating | Xmp.xmp.Rating | 
| Exif.Image.Copyright | Xmp.dc.rights | 
| Exif.Photo.ExifVersion | Xmp.exif.ExifVersion | 
| Exif.Photo.FlashpixVersion | Xmp.exif.FlashpixVersion | 
| Exif.Photo.ColorSpace | Xmp.exif.ColorSpace | 
| Exif.Photo.ComponentsConfiguration | Xmp.exif.ComponentsConfiguration | 
| Exif.Photo.CompressedBitsPerPixel | Xmp.exif.CompressedBitsPerPixel | 
| Exif.Photo.PixelXDimension | Xmp.exif.PixelXDimension | 
| Exif.Photo.PixelYDimension | Xmp.exif.PixelYDimension | 
| Exif.Photo.UserComment | Xmp.exif.UserComment | 
| Exif.Photo.RelatedSoundFile | Xmp.exif.RelatedSoundFile | 
| Exif.Photo.DateTimeOriginal | Xmp.photoshop.DateCreated | 
| Exif.Photo.DateTimeDigitized | Xmp.xmp.CreateDate | 
| Exif.Photo.ExposureTime | Xmp.exif.ExposureTime | 
| Exif.Photo.FNumber | Xmp.exif.FNumber | 
| Exif.Photo.ExposureProgram | Xmp.exif.ExposureProgram | 
| Exif.Photo.SpectralSensitivity | Xmp.exif.SpectralSensitivity | 
| Exif.Photo.ISOSpeedRatings | Xmp.exif.ISOSpeedRatings | 
| Exif.Photo.OECF | Xmp.exif.OECF | 
| Exif.Photo.ShutterSpeedValue | Xmp.exif.ShutterSpeedValue | 
| Exif.Photo.ApertureValue | Xmp.exif.ApertureValue | 
| Exif.Photo.BrightnessValue | Xmp.exif.BrightnessValue | 
| Exif.Photo.ExposureBiasValue | Xmp.exif.ExposureBiasValue | 
| Exif.Photo.MaxApertureValue | Xmp.exif.MaxApertureValue | 
| Exif.Photo.SubjectDistance | Xmp.exif.SubjectDistance | 
| Exif.Photo.MeteringMode | Xmp.exif.MeteringMode | 
| Exif.Photo.LightSource | Xmp.exif.LightSource | 
| Exif.Photo.Flash | Xmp.exif.Flash | 
| Exif.Photo.FocalLength | Xmp.exif.FocalLength | 
| Exif.Photo.SubjectArea | Xmp.exif.SubjectArea | 
| Exif.Photo.FlashEnergy | Xmp.exif.FlashEnergy | 
| Exif.Photo.SpatialFrequencyResponse | Xmp.exif.SpatialFrequencyResponse | 
| Exif.Photo.FocalPlaneXResolution | Xmp.exif.FocalPlaneXResolution | 
| Exif.Photo.FocalPlaneYResolution | Xmp.exif.FocalPlaneYResolution | 
| Exif.Photo.FocalPlaneResolutionUnit | Xmp.exif.FocalPlaneResolutionUnit | 
| Exif.Photo.SubjectLocation | Xmp.exif.SubjectLocation | 
| Exif.Photo.ExposureIndex | Xmp.exif.ExposureIndex | 
| Exif.Photo.SensingMethod | Xmp.exif.SensingMethod | 
| Exif.Photo.FileSource | Xmp.exif.FileSource | 
| Exif.Photo.SceneType | Xmp.exif.SceneType | 
| Exif.Photo.CFAPattern | Xmp.exif.CFAPattern | 
| Exif.Photo.CustomRendered | Xmp.exif.CustomRendered | 
| Exif.Photo.ExposureMode | Xmp.exif.ExposureMode | 
| Exif.Photo.WhiteBalance | Xmp.exif.WhiteBalance | 
| Exif.Photo.DigitalZoomRatio | Xmp.exif.DigitalZoomRatio | 
| Exif.Photo.FocalLengthIn35mmFilm | Xmp.exif.FocalLengthIn35mmFilm | 
| Exif.Photo.SceneCaptureType | Xmp.exif.SceneCaptureType | 
| Exif.Photo.GainControl | Xmp.exif.GainControl | 
| Exif.Photo.Contrast | Xmp.exif.Contrast | 
| Exif.Photo.Saturation | Xmp.exif.Saturation | 
| Exif.Photo.Sharpness | Xmp.exif.Sharpness | 
| Exif.Photo.DeviceSettingDescription | Xmp.exif.DeviceSettingDescription | 
| Exif.Photo.SubjectDistanceRange | Xmp.exif.SubjectDistanceRange | 
| Exif.Photo.ImageUniqueID | Xmp.exif.ImageUniqueID | 
| Exif.GPSInfo.GPSVersionID | Xmp.exif.GPSVersionID | 
| Exif.GPSInfo.GPSLatitude | Xmp.exif.GPSLatitude | 
| Exif.GPSInfo.GPSLongitude | Xmp.exif.GPSLongitude | 
| Exif.GPSInfo.GPSAltitudeRef | Xmp.exif.GPSAltitudeRef | 
| Exif.GPSInfo.GPSAltitude | Xmp.exif.GPSAltitude | 
| Exif.GPSInfo.GPSTimeStamp | Xmp.exif.GPSTimeStamp | 
| Exif.GPSInfo.GPSSatellites | Xmp.exif.GPSSatellites | 
| Exif.GPSInfo.GPSStatus | Xmp.exif.GPSStatus | 
| Exif.GPSInfo.GPSMeasureMode | Xmp.exif.GPSMeasureMode | 
| Exif.GPSInfo.GPSDOP | Xmp.exif.GPSDOP | 
| Exif.GPSInfo.GPSSpeedRef | Xmp.exif.GPSSpeedRef | 
| Exif.GPSInfo.GPSSpeed | Xmp.exif.GPSSpeed | 
| Exif.GPSInfo.GPSTrackRef | Xmp.exif.GPSTrackRef | 
| Exif.GPSInfo.GPSTrack | Xmp.exif.GPSTrack | 
| Exif.GPSInfo.GPSImgDirectionRef | Xmp.exif.GPSImgDirectionRef | 
| Exif.GPSInfo.GPSImgDirection | Xmp.exif.GPSImgDirection | 
| Exif.GPSInfo.GPSMapDatum | Xmp.exif.GPSMapDatum | 
| Exif.GPSInfo.GPSDestLatitude | Xmp.exif.GPSDestLatitude | 
| Exif.GPSInfo.GPSDestLongitude | Xmp.exif.GPSDestLongitude | 
| Exif.GPSInfo.GPSDestBearingRef | Xmp.exif.GPSDestBearingRef | 
| Exif.GPSInfo.GPSDestBearing | Xmp.exif.GPSDestBearing | 
| Exif.GPSInfo.GPSDestDistanceRef | Xmp.exif.GPSDestDistanceRef | 
| Exif.GPSInfo.GPSDestDistance | Xmp.exif.GPSDestDistance | 
| Exif.GPSInfo.GPSProcessingMethod | Xmp.exif.GPSProcessingMethod | 
| Exif.GPSInfo.GPSAreaInformation | Xmp.exif.GPSAreaInformation | 
| Exif.GPSInfo.GPSDifferential | Xmp.exif.GPSDifferential | 
| Iptc.Application2.ObjectName | Xmp.dc.title | 
| Iptc.Application2.Urgency | Xmp.photoshop.Urgency | 
| Iptc.Application2.Category | Xmp.photoshop.Category | 
| Iptc.Application2.SuppCategory | Xmp.photoshop.SupplementalCategories | 
| Iptc.Application2.Keywords | Xmp.dc.subject | 
| Iptc.Application2.SubLocation | Xmp.iptc.Location | 
| Iptc.Application2.SpecialInstructions | Xmp.photoshop.Instructions | 
| Iptc.Application2.DateCreated | Xmp.photoshop.DateCreated | 
| Iptc.Application2.DigitizationDate | Xmp.xmp.CreateDate | 
| Iptc.Application2.Byline | Xmp.dc.creator | 
| Iptc.Application2.BylineTitle | Xmp.photoshop.AuthorsPosition | 
| Iptc.Application2.City | Xmp.photoshop.City | 
| Iptc.Application2.ProvinceState | Xmp.photoshop.State | 
| Iptc.Application2.CountryCode | Xmp.iptc.CountryCode | 
| Iptc.Application2.CountryName | Xmp.photoshop.Country | 
| Iptc.Application2.TransmissionReference | Xmp.photoshop.TransmissionReference | 
| Iptc.Application2.Headline | Xmp.photoshop.Headline | 
| Iptc.Application2.Credit | Xmp.photoshop.Credit | 
| Iptc.Application2.Source | Xmp.photoshop.Source | 
| Iptc.Application2.Copyright | Xmp.dc.rights | 
| Iptc.Application2.Caption | Xmp.dc.description | 
| Iptc.Application2.Writer | Xmp.photoshop.CaptionWriter |