Need help?
<- Back

Comments (28)

  • 9dev
    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.
  • chowells
    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.
  • netsharc
    > Do not assume the operating system strips Exif, or any other metadata, when you upload an image.> The actual behavior depends on the source image, OS, browser, file picker, app, export path, transformation pipeline, and receiving service.It's a bit hair-pulling that Android now has a filter between the file system and app, that when an app asks for a JPEG file from the filesystem, the filter strips the EXIF. Yes, it's because as Douglas Adams observed, the universe is busy making more and more idiots (for example Zuck's zucking apps might not have location permissions but it can scan the EXIF GPS tags of all your images to determine where you've been), and the solution to that is also idiocy.
  • rurban
    I wouldnt recommend exiftool in a commercial image pipeline. way too slow compared to libexif or tagging your images with in the image lib. We store everything in tiff tags and exif tags, as our database. But we also embed yaml as comment for everything not covered.
  • linsomniac
    FYI: I just recently added simple Exif viewing/editing/clearing to my "xv"-inspired image editor pxv: https://github.com/linsomniac/pxvMy 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.
  • oakinnagbe
    Exif is technical debt in the most flattering sense. Messy, old, and still quietly useful decades later.
  • woadwarrior01
    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].All of these, the author mentions. Now for SynthID[3], 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/[3]: https://arxiv.org/abs/2510.09263
  • AndrewStephens
    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.
  • appleslicemusic
    "A boring standard that aged well" --so true. I love, love exif.
  • nradov
    Exif is totally unlike what modern developers would think of as a "file format". It's more like dumping a set of binary block data structures from memory to disk. This was efficient on old digital cameras with minimal hardware resources. But making any significant edits requires doing pointer arithmetic, which can be an alien concept for developers who have only ever used memory-safe programming languages.
  • Asfand2099
    [flagged]
  • koryanders
    [flagged]