Metadata is data which describes the actual data. It describes the data rather than being the actual data itself. Image metadata is very useful for tagging and understanding the actual images. So metadata about an image would be the date the image was taken, the name of the photographer, some keywords to describe it, the copyright of the images, and details of the image such as its width, height, and format.
Metadata is extremely useful for any image workflow (can we legally use the image, which searches will we display the image on, when was the image taken, etc). Imagine you just had a huge collection with images with no idea what they contain or any other details about them.
Metadata can be stored as a separate (usually text) file. There is nothing to stop you creating your own metadata files. If you do this XML or JSON work very well and the advantage is that you can add whatever values make sense to your use case.
Most image file formats however, already have an option for storing the metadata inside the actual image file using a preset number of options. Each image file has its own proprietary format and set of definitions with lots of cryptic terms (EXIF, IFD, IPTC). The information is often encoded, which also makes it harder to view and extract without the right tools.
In this set of articles we are going to have a look in more detail at some of the most important image metadata formats. We will also cover some free and commercial tools which allow you to extract this metadata.
Read and write images in Java with one line of code
Read an Image with
BufferedImage image = JDeli.read(streamOrFile);
and write an Image with
JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)