Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

Are you a Java Developer working with Image files?

Read and write images in Java with JDeli

What is EXIF metadata?

1 min read

metadata on cat picture in Preview

What is Exif?

EXIF is a common International standard format for storing metadata as part of an image. This has the advantage of simplicity and convenience. It stands for Exchangeable image file format and is found in JPEG and HEIC, PNG and Tiff image file formats and wav sound files. It was first proposed in 1995 and is currently at version 2.32

It was originally developed for the Tiff file format and consists of a set of predefined Exif tags (such as Image width, height, copyright, location, etc) which take a predefined value (Copyright is a String). There is a nice list of EXIF tags here

How can I view EXIF?

A big advantage of EXIF data is that it can be easily viewed without specialist tools in many applications on Mac, Linux and Windows and mobile. Here is the obligatory cat picture on my Mac with the metadata shown in Preview and Finder on my Mac.

metadata on cat picture in Preview

metadata on cat picture in Finder

In a later article we will look in more detail at  how you can read EXIF data.

What are the advantages and disadvantages of EXIF?

It works very well if the data you are interested in matches the Exif specification. But a weakness of EXIF is that you cannot alter or add your own tags to suit your workflow. This has led to alternative metadata formats such as XMP which is an extensible XML markup developed by Adobe.

Another potential issue with EXIF data is that there is no security or encryption. Anyone can access the information and it may includes things you do not wish to reveal, such as the location where the photo was taken.

TLDR

Quick summary is that HEIC, JPEG, PNG, TIFF can contain easily read predefined data about images. This can be very useful to tell you about images, but you should also be aware it is there.



Find out how to read and write images files in Java with JDeli:

Read: BufferedImage image = JDeli.read(streamOrFile);

Write: JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)

Learn more >>

Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.