I ran into a specific case of metadata preservation issue with cached images.
Details:
All images are jpg files
EXIF-IPTC-XMP metadata is present (copyrights, title, keywords etc)
Options->Image
IPTC copyright embedding - enabled
Issue:
zpBase theme uses standard template-functions for:
printDefaultSizedImage - to display photo in full image page.
getFullImageURL() - to enable downloading original photo size in the same page, if option for Download was enabled.
If "Full image protection" is set to be used (Protected View or Download, "cache full image" enabled OR disabled) in Options->Image, getFullImageURL() leads to function getProtectedImageURL to be used and resulting image lacks ALL metadata, despite enabling IPTC preservation.
So, this generation of filename_FULL version lacks options to preserve metadata when it's essential for this use-case.
printDefaultSizedImage - to display photo in full image page.
First, this is not the full image, it is a "sized" image and the page is the single image page which basically never displays the full iamge anyway.
The full image in protected view is served via thet images processor, see also the note:
Protected view forces image processing before the image is displayed, for instance to apply a watermark or to check passwords
If meta data is preserved on processing depends on the graphic lib used. As far as I know only Imagick does but GD can't. However there is a GD function named iptcembed() but that's in any case only IPTC, no EXIF or XMP.