In this article I will show you how to write BMP images in Java.
ImageIO can write out images as BMP files, but it offers very little control over the process or output. So we added the ability to write out images as BMP files to JDeli. In this article we show you how to use either JDeli or ImageIO and cover the benefits of JDeli.
What is a BMP image file?
A 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); |
Why use JDeli to write BMP images?
JDeli offers a range of advantages over ImageIO, including:
- support Bilevel, Grayscale and RGB images.
- prevent heap related JVM crashes
- reduce output file size
- improve write performance
- supports threading
Learn more about JDeli, or download to try it yourself.
Would you also like to read BMP images?
We also have a post on How to Read BMP images in Java.