In this article I will show you how to read BMP images in Java. We also have a related article covering how to write BMP files in Java.
BMP files are supported by both ImageIO and Apache Commons Imaging. We felt there was room for better support on the Java platform (especially in performance and support for the format. So we added BMP support to JDeli.
What is BMP?
It was primarily designed for Window platforms although it also works on other platforms. It is not supported in Web browsers.
The file name extension for BMP files is:
How to read a BMP image in Java with ImageIO
Step 1 Create a File handle, InputStream or URL pointing to the raw BMP image.
Step 2 ImageIO will now be able to read a BMP file into a BufferedImage. This syntax is like so:
BufferedImage image = ImageIO.read(bmpFileOrInputStreamOrURL)
How to read a BMP image in Java with JDeli
Step 1 Add JDeli to your class or module path. (download the trial jar).
Step 2 Create a File, InputStream pointing to the raw BMP image. You can also use a byte containing the image data.
Step 3 Read the BMP image into a BufferedImage
BufferedImage image = JDeli.read(bmpFile);
Why use JDeli to read BMP?
JDeli offers a range of advantages over ImageIO and alternatives, including:
- prevents heap related JVM crashes
- reduce output file size
- improved read performance
- Faster write performance back to BMP
- supports threading
Would you also like to write BMP images?
We also have a post on How to Write BMP images in Java.
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)