In our previous article we looked at some Viewers which could display Exif data for you. Sometimes, you need to programmatically access the data. So we finish our series of articles with some suggestions to try. There is a good selection of free and commercial tools for reading EXIF data from Image files, depending on the language you are writing your code in. Not all tools support all image formats (especially Heic). Here is a selection of 5 Open Source or Commercial tools which you may find useful as a starting point. Please feel to add your own suggestions.
- libheif is an Open Source library for accessing image data. While this is written in C, there are a number of wrappers for other languages including Python. There is a really good tutorial for this on Youtube.
- exiv2 is a an Open Source C++ library for reading Exif data.
- ExifTool is an Open Source Perl library for reading Exif data from multiple file types.
- Leadtools is a commercial toolkit for Images.
- JDeli is our own commercial image library. JDeli allows you to extract Heic Image metadata in two lines of Java code.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);
What is JDeli?
JDeli is a commercial Java Image library that is used to read, write, convert, manipulate and process many different image formats.
Why use JDeli?
To handle many well known formats such as JPEG, PNG, TIFF as well as newer formats like AVIF, HEIC and JPEG XL in java with no calls to any external system or third party library.
What licenses are available?
We have 3 licenses available:
Server for on premises and cloud servers, Distribution for use in a named end user applications, and Custom for more demanding requirements.
How does JDeli compare?
We work hard to make sure JDeli performance is better than or similar to other java image libraries. Check out our benchmarks to see just how well JDeli performs.