Apps by Detlev Voss

PhotoView reads the XMP your editor wrote

Photo post-processing involves not only adjusting settings to optimize the image or make it match what you saw on location, but also managing the images and image data. We evaluate the images, mark them as selected or rejected, assign a star rating, use color labels, assign (hierarchical) keywords, and many photographers (probably all professionals) add title, caption and information regarding the image rights to their photos.

A kestrel photographed close up, shown full screen in PhotoView, with the metadata overlay listing the headline, a star rating, a color label, the keyword tree, the app that wrote the file, the edit-history count and a RAW-adjustments flag

The software you use (Lightroom, Capture One, PhotoLab, darktable, etc.) stores all this metadata in various ways, often in databases to enable quick searches. If you want to access your photos and their metadata using different programs, for example, at home on your computer with your usual photo editing software and on the go with a simple photo viewer, or if you want to share your images with other people, the photo and its metadata must form a single unit and be transferred together. Today, this is typically done using XMP packages, which are stored directly within the same file the image is stored in - if the image format allows it (DNG, JPEG, etc.). If the format does not allow XMP data to be stored within the image file, the data is saved in a separate file, known as an XMP sidecar. This is often the case with manufacturer-specific RAW files.

If the XMP data is stored in a separate file alongside the image, you must, of course, ensure that the two are not accidentally separated, for example when moving the images to a different folder on the hard drive, sharing them with friends or agencies, or simply when using different software.

PhotoView on the Mac and iPhone/iPad reads the XMP data from the image file and displays it in an overlay window next to the photo in full-screen view (the size and position of the overlay, as well as which data is shown, can be configured). Due to system limitations, the iPhone and iPad only read the data from the image file; on the Mac, the XMP sidecar is also read.

Where your editor's data actually lives

As mentioned in the introduction, metadata is stored directly as XMP within the image file in many file formats. This is the case with widely used formats such as JPEG, HEIC, TIFF, DNG, and PNG. Especially in workflows with RAW files, where the original files are not modified, the data ends up (in addition to the photo editor's database) in the XMP sidecar files. If an XMP sidecar exists, this data is considered authoritative.

The XMP standard recommends saving the sidecar files with the same name as the image file but with the file extension ".xmp". In practice, "RAF.xmp" is also used, i.e., an image file named "image-01.jpeg" is accompanied by either a file named "image-01.xmp" or "image-01.RAF.xmp". PhotoView searches for both of them.

If you would like to learn more about XMP: Adobe developed XMP about 25 years ago, and it has been published as ISO Standard 16684 since 2012. The latest version of the standard can be purchased on the ISO website. You can find a freely available version on the Adobe XMP GitHub.

Showing a photo or video's metadata

On your Mac, iPhone, and iPad, PhotoView reads images and videos from the (system) photo library. On the Mac, PhotoView can also read original files from a folder (by pressing ⌘O or selecting the corresponding menu item), or you can drag and drop files from the Finder into PhotoView.

Since PhotoView reads the data from the files, the entire XMP data tree is available, not just the part that macOS or iOS include in their own display of EXIF/IPTC data.

On a Mac, the XMP sidecar file is also read, and the data from it is imported. In case of a conflict, the data from the .xmp file is the one used for display.

When you are viewing a photo in PhotoView, you can tap the photo (or press ⌘I on a Mac) to display its metadata. The metadata overlay always displays the data for the photo currently being viewed, even if you switch to the next or previous image (by swiping or using the arrow keys). Tap the image again, and your photo will be back in focus (on its own), and the metadata will be hidden.

PhotoView works read-only. No changes are made to your images or their metadata. The program runs entirely locally, and nothing is uploaded anywhere. If your images are stored in iCloud, the operating system automatically downloads them when you want to view them in PhotoView.

What you'll see

The following list provides an overview of the available data (there are >100 data fields available):

There's a Finder layer too

When images are dragged and dropped into PhotoView on a Mac or when images are loaded from a folder, PhotoView can also display information from the Finder (tags, color labels, etc.). Of course, this doesn't work with photos loaded from the system's photo library.

Read with Apple's own tools, on your device

PhotoView reads the XMP data with Apple's own ImageIO framework (using CGImageMetadata and CGImageSourceCopyMetadataAtIndex). That is the same framework the system itself uses. All XMP namespaces are read with it, so there is no third-party XMP parser involved. The same source code is the base for iPhone, iPad and Mac. On each of them PhotoView reads the embedded XMP packet directly from the photo's original file, so the full tree is available, not only the slice that iOS or macOS folds into its own EXIF and IPTC display. On the Mac, a .xmp sidecar is parsed into that same shape, so embedded metadata and sidecar metadata go through one path.

Everything is read on your device. As mentioned already, PhotoView works locally and uploads nothing, and it only ever reads: your files and their metadata are never changed. When a photo lives in iCloud, the system downloads it for you as you open it in PhotoView, and the reading still happens on your device.

How to try it

PhotoView is currently in the public, free beta testing phase. Feel free to try it out:

Join the public beta on TestFlight

The full set of supported metadata is available in the Pro version. Of course, this is available free of charge during the beta testing phase.

The final (App Store) version will include a free 7-day trial period that unlocks all data. When the trial period ends, the basic data will remain freely available, but the Pro data will no longer be accessible. You will not be automatically charged at the end of the trial period! This is a one-time purchase, meaning you pay only once and gain access to the current and future versions on Mac, iPhone, and iPad.

If you have any questions, you can find my contact information on the Contact page. There you will also find a link to the PhotoView user guide.

← Back to the blog