Max resolution of .bmp file format

8.9k views Asked by At

I have made a Mandelbrot fractal generator (who hasn't, I know) which can render directly to disk to generate huge fractals.

My first test was a UHD 4k resolution which turned out great (8-bit colour for all of these examples). So I decided to go a little crazy and went 10x bigger in both dimensions, i.e. 38400 x 21600. The resulting file doesn't appear valid in that Photoshop can't open it but even looking at the file properties in Windows Explorer shows that the dimensions/etc are missing.

I thought there was a chance that the limits were 32768 so I tried to go just under that by doing a 30000 x 30000. This still seems to be invalid.

Going down to 10000 x 10000 works fine so I am wondering what the limitations are of the file format?

File size shouldn't be an issue as even the 10x4k resolution file was under 1GB.

3

There are 3 answers

2
Parallel Park On

It looks the maximum size of BMP can be 32Kx32K and 2Gx2G pixels. Here is the link I found.. http://www.fileformat.info/format/bmp/egff.htm

1
BerndSchmitt On

limits should be the dword (32bit) entries in the header: at 0x02 filesize (maybe if you use compression: at 0x12 x-max, at 0x16 y-max)

(given that the entry at 0x22 data-bytes % 4 == 0)

I had a similar problem with a self-generated file: 24284 x 24464 Pixels (594.08 MPixels). Win10 file explorer did not show any size or depth, xnview, gimp, paint, ppt, internet-explorer, edge, chrome all did nothing.

firefox displayed the pic for a short time, but then switched to display a black box.

the only program which worked was irfanview.

(hope this is a valid answer now - as i seem not to be able to comment)

0
Dave On

I am not sure why, but the maximum dimensions for a Windows bitmap are 32768x32768 pixels. As I recall, they were actually developed before Windows 1.0. The first official document I remember seeing was after the Windows 3.1 release. They probably thought that was ridiculously large, at the time :) Both parameters are defined as DWORD's (32-bit integers). The width parameter is unsigned and the height parameter is signed (negative inverts the image).