Site iconJava PDF Blog

How to extract GPS data from image files in Java

What is Image GPS data?

Global Positioning System (GPS) data is the latitude and longitude coordinates that can be linked to the image. It is a part of an image’s metadata and usually, it is used to record where the picture was taken/created. Most phones nowadays automatically attach the GPS data to the images you take.

Where can I find it?

It is a part of the EXIF data, which is the metadata of an image. It can be found in the following image formats HEIC, JPEG, PNG, TIFF, WEBP. You can easily view the metadata in an image, you most likely have found it before when clicking to look for more information when viewing an image. In our JDeli Viewer, you can easily find it here.

How can I extract Image GPS data in Java?

There are many ways you can extract this data from the image in Java. You can use ImageIO, Apache Tika or our JDeli library.
They all give an easy and simple way to extract the metadata in just one or a few lines of code.

With JDeli:

JDeli.getImageInfo(byte[] data);

With Tika:

final ImageDetector detector = new ImageDetector();
detector.detect(TikaInputStream.get(Paths.get("file.img")), null);

With ImageIO:

ImageReader imageReader = ImageIO.getImageReadersByFormatName("ImageFormat").next();
imageReader.setInput(ImageIO.createImageInputStream(new ByteArrayInputStream(byte[] data)), true);

IIOMetadata metadata = imageReader.getImageMetadata(0);

 

You can find out more about handling metadata with our JDeli Image Library over on our support site.