metadata: Support XMP metadata from glycin

This commit is contained in:
Sophie Herold 2024-11-15 00:20:53 +01:00
parent 3ed6c28a78
commit 689401dffc
3 changed files with 13 additions and 1 deletions

View file

@ -113,7 +113,7 @@
{
"type": "git",
"url": "https://gitlab.gnome.org/sophie-h/glycin.git",
"commit": "a887f4246b1dc0a40fd10dbfe96e734b3799d9a3"
"commit": "35401d5faf9aa0980dc04e51629b3f4eda541dbf"
}
]
},

View file

@ -0,0 +1 @@
Display XMP metadata for JPEG images.

View file

@ -55,10 +55,21 @@ impl Metadata {
}
}
fn set_xmp_bytes(&mut self, bytes: Vec<u8>) {
let result = self.metadata.add_raw_xmp(bytes);
if let Err(err) = &result {
log::warn!("Failed to decode XMP bytes: {err}");
}
}
pub fn set_image_info(&mut self, image_info: ImageInfoDetails) {
if let Some(exif_raw) = image_info.exif.as_ref().and_then(|x| x.get_full().ok()) {
self.set_exif_bytes(exif_raw);
}
if let Some(exif_xmp) = image_info.xmp.as_ref().and_then(|x| x.get_full().ok()) {
self.set_xmp_bytes(exif_xmp);
}
self.image_info = Some(image_info);
}