Zain Zain is a Java developer. His is a knowledge seeker who likes to try out and explore new things.

How to read BMP images in Java

1 min read

In this article I will show you how to read BMP images in Java using ImageIO, JAI and JDeli.

We previously used ImageIO to read BMP files, but over time became increasingly dissatisfied as we discovered more and more issues. Eventually we wrote our own BMP Decoder which fixes those issues and is now available as part of JDeli.

What is BMP?

A BMP, bitmBMP Imageap image file, is a file format which stores images. It supports 2d images in monochrome (one colour) and colour. The BMP file format supports 2 file extensions including .bmp and .dib (Device Independant Bitmap). It was primarily designed for Window platforms although it also works on other platforms.

 

How to read BMP images in Java?

Here are examples of how BMP images can be read in Java.

ImageIO:

File bmpFile = new File("bmpImage.bmp");
BufferedImage image = ImageIO.read(bmpFile);

You can find the javadocs for ImageIO here. You can find more information on ImageIO (included with the JDK) on their main page.

JAI:

 RenderedImage image = JAI.create("fileload", "test1.bmp");

You can find the javadocs for JAI here. More information on JAI can be found here.

JDeli:

Javadoc and Download

You can easily replace ImageIO (and get much better support for BMP files) by just changing ImageIO.read to JDeli.read:

//Read Image (can also be OutputStream or byte array)
File bmpFile = new File("bmpImage.bmp"); 
BufferedImage image = JDeli.read(bmpFile);

Or you can use the JDeli BmpDecoder directly:

BmpDecoder decoder = new BmpDecoder();
BufferedImage image = decoder.read(rawImageBytes);

Why use JDeli?

JDeli offers a range of advantages over ImageIO and alternatives, including:

  • prevents heap related JVM crashes
  • implements unsupported image formats
  • reduce output file size
  • improve read/write performance
  • supports threading
  • superior image scaling algorithms

Learn more about JDeli, or download to try it yourself.

This article is part of our series on reading and writing image files in Java.

Zain Zain is a Java developer. His is a knowledge seeker who likes to try out and explore new things.

Leave a Reply

Your email address will not be published. Required fields are marked *

IDRsolutions Ltd 2019. All rights reserved.