As with most standards, there are three almost overlapping standards for image metadata. EXIF, IPTC and XMP. IPTC incidentally is hot again because certain generative AI providers add IPTC metadata[1] to the images they generate. Incidentally, OpenAI uses another standard for the same purpose, C2PA[2].
IPTC and C2PA metadata are not to be confused with SynthID, which both OpenAI and Google embed in the pixels of the images they generate. Needless to say, in mutually incompatible ways.
Wrote a parser to extract image metadata once, and got massively frustrated with the amount of undocumented, semi-documented, wrongly documented, or partially documented attributes. You’ll find references online, but most of them lack half of what you encounter in images. Every image processing app under the sun adds its own range. Some use metric values, some imperial; finding out which can be guesswork. Aperture is given in f-stops, decimals, or literal fraction strings. Some attributes hold sentinel values. Some vendors have custom conventions for undefined data.
I work on the receiving end of media processing nowadays, and the overlap of variety in formats, codecs, and configurations is frustrating. No two encoders work the same way, and they often "innovate" in fun and varied ways that almost feel like renewed attempts to make decoders crash.
I worked at a company that displayed user-uploaded photos online and in email newsletters. Some small portion of photos displayed very incorrectly only in the email newsletters as displayed by outlook. They were fine everywhere else.
After a lot of investigation, we discovered that only photos uploaded by one specific (prolific) person had this issue. And it was caused by their software putting some nonsense exif DPI data in the image that was ignored as nonsense by every renderer except outlook. The format is a minefield of features with inconsistent support.
But I suppose that's part and parcel with actually being used. And that's somewhat better than the alternative.
FYI: I just recently added simple Exif viewing/editing/clearing to my "xv"-inspired image editor pxv: https://github.com/linsomniac/pxv
My primary goal was to have my core "xv" muscle-memory usable through a simple tool that didn't require me building the original xv (since you can't just apt install it), because these days I'm not using xv much.
But I've since added a few features that xv doesn't have like the Exif and also image annotation, plus beefed up the image enhancement to be very much like XVs.
Exif is great but here is your obligatory reminder that if you are publishing images you should strip out some of the identifying information that cameras and image editing software likes to embed.
In particular, you probably don’t want the GPS coordinates of your house publicly available on your blog for everyone to see.
Conversely, as a hobbyist photographer, I want to do the exact opposite for most photos I take.
I would like my camera info, especially the body, lens, focal length, and settings in the image. I recently discovered that software like Darktable can even take a gpx file and photo timestamps to add coordinates to photos taken on a camera without a GNSS receiver.
This why I have my phones track themselves (started with Moostrax on the Blackberry then iOS, Moves on iOS until Facebook killed it, now it's OwnTracks on iOS logging to my server + Arc Timeline + Gyroscope + some others, I think) - even without the "where was this photo taken?" helpfulness (for camera shots + phone shots with stripped location), it's also good for "where was that cafe / coffee shop / craft shop / whatever?" kind of questions (obviously assuming you can remember vaguely what date and time...)
I should get better at taking contemporaneous notes, really, but since that hasn't happened in 30+ years, I doubt it's going to stick now.
Most publication and messaging tools strip exif data, which is incredibly frustrating when friends send you pictures taken together as you no longer have the time stamp, nor GPS coordinate.
As with most standards, there are three almost overlapping standards for image metadata. EXIF, IPTC and XMP. IPTC incidentally is hot again because certain generative AI providers add IPTC metadata[1] to the images they generate. Incidentally, OpenAI uses another standard for the same purpose, C2PA[2].
IPTC and C2PA metadata are not to be confused with SynthID, which both OpenAI and Google embed in the pixels of the images they generate. Needless to say, in mutually incompatible ways.
[1]: https://iptc.org/news/draft-for-public-comment-new-photo-met...
[2]: https://c2pa.org/
Wrote a parser to extract image metadata once, and got massively frustrated with the amount of undocumented, semi-documented, wrongly documented, or partially documented attributes. You’ll find references online, but most of them lack half of what you encounter in images. Every image processing app under the sun adds its own range. Some use metric values, some imperial; finding out which can be guesswork. Aperture is given in f-stops, decimals, or literal fraction strings. Some attributes hold sentinel values. Some vendors have custom conventions for undefined data.
It’s a jungle out there.
My hell was trying too make sense or and organise audio/music ID3 tags. What a nightmare that is. EXIF seems much nicer to me.
I work on the receiving end of media processing nowadays, and the overlap of variety in formats, codecs, and configurations is frustrating. No two encoders work the same way, and they often "innovate" in fun and varied ways that almost feel like renewed attempts to make decoders crash.
that sounds endlessly frustrating
I worked at a company that displayed user-uploaded photos online and in email newsletters. Some small portion of photos displayed very incorrectly only in the email newsletters as displayed by outlook. They were fine everywhere else.
After a lot of investigation, we discovered that only photos uploaded by one specific (prolific) person had this issue. And it was caused by their software putting some nonsense exif DPI data in the image that was ignored as nonsense by every renderer except outlook. The format is a minefield of features with inconsistent support.
But I suppose that's part and parcel with actually being used. And that's somewhat better than the alternative.
FYI: I just recently added simple Exif viewing/editing/clearing to my "xv"-inspired image editor pxv: https://github.com/linsomniac/pxv
My primary goal was to have my core "xv" muscle-memory usable through a simple tool that didn't require me building the original xv (since you can't just apt install it), because these days I'm not using xv much.
But I've since added a few features that xv doesn't have like the Exif and also image annotation, plus beefed up the image enhancement to be very much like XVs.
Exif is technical debt in the most flattering sense. Messy, old, and still quietly useful decades later.
Exif is great but here is your obligatory reminder that if you are publishing images you should strip out some of the identifying information that cameras and image editing software likes to embed.
In particular, you probably don’t want the GPS coordinates of your house publicly available on your blog for everyone to see.
Conversely, as a hobbyist photographer, I want to do the exact opposite for most photos I take.
I would like my camera info, especially the body, lens, focal length, and settings in the image. I recently discovered that software like Darktable can even take a gpx file and photo timestamps to add coordinates to photos taken on a camera without a GNSS receiver.
Yup. Looking back I wish I had location data on some of the photos I took. Can't share them but can't also remember where I took them. Unfortunate.
This why I have my phones track themselves (started with Moostrax on the Blackberry then iOS, Moves on iOS until Facebook killed it, now it's OwnTracks on iOS logging to my server + Arc Timeline + Gyroscope + some others, I think) - even without the "where was this photo taken?" helpfulness (for camera shots + phone shots with stripped location), it's also good for "where was that cafe / coffee shop / craft shop / whatever?" kind of questions (obviously assuming you can remember vaguely what date and time...)
I should get better at taking contemporaneous notes, really, but since that hasn't happened in 30+ years, I doubt it's going to stick now.
Apparently AI models have gotten decent at geoguessr... Might be worth a shot?
https://news.ycombinator.com/item?id=43724935
Yes, as another privacy "aficionado" many years ago I had taken so many photos that I don't remember where I took, and I can't ask around either :'(
Most publication and messaging tools strip exif data, which is incredibly frustrating when friends send you pictures taken together as you no longer have the time stamp, nor GPS coordinate.