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 for you to extract GPS data from an 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.
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);
Why do developers choose JDeli over free alternatives?
- Works with newer image formats such as AVIF, HEIC, JPEG XL, WEBP
- Better support than alternatives for JPEG, PNG, TIFF.
- Prevent JVM crashes caused by native code in other image libraries
- Better performance than other popular Java image libraries