Georgia Ingham Georgia is a Java Developer. She has spoken at lots of conferences. Her hobbies include reading, completing puzzle books and cycling.

How to write BMP images in Java

1 min read

BMP icon

In this article, I will show you how to write BMP images in Java. We also have a related article covering how to read BMP files in Java.

ImageIO can write out images as BMP files, but it offers very little control over the process or the output. So we added the ability to write out images as BMP files to JDeli. In this article, I show you how to use either JDeli or ImageIO and cover the benefits of JDeli.

What is a BMP image file?

BMP iconA BMP is an image file format, commonly known as a bitmap image, with the extension .bmp or .dib. It was originally created by Microsoft for computers running Windows, and it specifies the color of the pixels in a way that allows them to be displayed on any device.

How to write out an image as a BMP file in ImageIO

Step 1 Create a File (or OutputStream) object

File file = new File("/path/to/outputFile.bmp"));

Step 2 Pass image, BMP type and File (or OutputStream) object into write method

ImageIO.write(bufferedImage, "BMP", file);

Note you can easily switch to JDeli and replace ImageIO by just changing ImageIO.write to JDeli.write.

How to write out an image as a BMP file with JDeli

Step 1 Add JDeli to your class or module path. (download link to the trial jar).

Step 2 Create a File (or OutputStream) object

File file = new File("/path/to/outputFile.bmp"));

Step 3 Pass image, BMP type and File (or OutputStream) object into write method

JDeli.write(bufferedImage, "BMP", file);

In JDeli you can also use a typesafe version

JDeli.write(bufferedImage, OutputFormat.BMP, file);

or pass in a BmpEncoderOptions object for more control over BMP image output.

BmpEncoderOptions options = new BmpEncoderOptions();
JDeli.write(bufferedImage, options, file);


Start reading and writing images with one line of code

Read: BufferedImage image = JDeli.read(streamOrFile);

Write: JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)

Learn more >>

Georgia Ingham Georgia is a Java Developer. She has spoken at lots of conferences. Her hobbies include reading, completing puzzle books and cycling.