BMP to GIF converter
You add BMP files and download finished GIF images. The weight drops several times over: our 3000 by 2000 pixel photo went into the converter as 17.2 MB and came out as 2.52 MB. All of the work happens inside your browser.
Files in queue
What is BMP and what is GIF?
BMP stores an image the way a screen sees it: as a grid of dots, where every dot gets its own place in the file and its own colour value. The format was created for OS/2, was later adopted by Windows and stayed there for good.[1] The variant you meet most often gives each dot 24 bits, which is one byte for red, one for green and one for blue. That kind of record can name 16.7 million shades and it keeps every one of them separately.
GIF approaches colour in a completely different way. The format works from a list of colours settled in advance, and next to each pixel it stores only the position number from that list. The list is called a palette and it holds up to 256 positions, because the number takes eight bits.[2] On top of that comes LZW compression, which looks for repeating runs of those numbers and writes each run as a single code.
The specification that W3C still publishes today carries the marking 89a and the date 31 July 1990.[3] That version added the transparency index and the delays between frames that let the format show animation. The format itself came from CompuServe three years earlier, in 1987.[2]
How do you turn a BMP into a GIF?
Drag your BMP files onto the Add files area, or click that area and point to the images on your drive. You can put many files into the queue at once. Then press the Convert button.
You can download the finished images one at a time with the Download button next to a queue row, or all together with the Download all button. The Clear all button empties the whole queue, and the Remove label next to a row takes a single file out of it.
In the queue on the right, every file shows its weight before and after the conversion together with the difference as a percentage. For our 3000 by 2000 pixel photo that row read Before: 17.2 MB · After: 2.52 MB (85% less). The same summary for the whole batch sits under the buttons, in the Saved line.
The writing itself is done by gifenc, a GIF encoder written in JavaScript and run on your own computer.[4] Browsers have read GIFs since their first versions, and writing one from a canvas is still beyond them: on 5 September 2026 we checked Chromium 151 and Firefox 153, and each of them returned a PNG file for that request. The MDN documentation describes this behaviour openly — for a format the browser does not know, you get a PNG and no warning at all.[5]
Our encoder writes the GIF regardless of the browser, and the image stays on your device from the first click to the end of the work. Under the converter sits a format switcher labelled BMP to GIF. Clicking either of the two formats opens a list, and a choice from it takes you to the converter page that handles that pair. We have also gathered every pair from this group on the Format conversion subcategory page.
Why does a GIF weigh less than a BMP?
The weight of a BMP file can be worked out in advance, and the result does not depend on what the picture shows. Every pixel takes three bytes, and every row of the image is padded with zeros up to a full four bytes; the Microsoft documentation gives a ready formula for this.[6] On top of that come 54 bytes of header.
Let us follow that through on a photo measuring 3000 by 2000 pixels. One row holds 3000 pixels at three bytes each, which is 9,000 bytes. At that width there is nothing to pad. There are 2,000 rows, so the pixels alone take 18,000,000 bytes. Together with the header the file weighs 18,000,054 bytes, which is 17.2 MB in the notation the summary inside the tool uses.
GIF saves room in two ways at once. The first is the palette itself: one number takes the place of three bytes per pixel, so the image immediately loses two thirds of its weight. The second is LZW compression, which walks through those numbers and writes repeating runs as a single code. The larger the flat areas in an image, the longer those runs are and the harder the compression works.
Our 3000 by 2000 pixel photo came out of the converter as a file weighing 2.52 MB. The Saved line then appears under the buttons, with the number of megabytes and the percentage the file went down by. When the same image has to keep all of its shades, the BMP to PNG converter will prepare it.
How much does the same image weigh in BMP and in GIF?
| Image | Size in pixels | BMP | GIF | How much less |
|---|---|---|---|---|
| Photo from a camera | 3000 × 2000 | 17.2 MB | 2.52 MB | 85% |
| Photo for a website | 1280 × 850 | 3.11 MB | 540.5 KB | 83% |
| Scan of a book page | 1200 × 1600 | 5.49 MB | 983.2 KB | 83% |
| Screenshot of an interface | 1200 × 630 | 2.16 MB | 37.0 KB | 98% |
| Graphic made of flat areas | 800 × 600 | 1.37 MB | 7.28 KB | 99% |
How many colours are left after the file is written as a GIF?
| Image | Colours in the BMP file | Positions in the GIF palette | Pixels with an unchanged colour | Largest difference on a channel |
|---|---|---|---|---|
| Photo from a camera | 785,216 | 256 | 0.1% | 31 out of 255 |
| Photo for a website | 323,525 | 256 | 0.1% | 30 out of 255 |
| Scan of a book page | 43,400 | 256 | 1.1% | 13 out of 255 |
| Screenshot of an interface | 5,208 | 256 | 40.2% | 24 out of 255 |
| Graphic made of flat areas | 193 | 64 | 99.9% | 8 out of 255 |
How does BMP differ from GIF?
| Format property | BMP | GIF |
|---|---|---|
| Compression | None in the most common variant, optionally lossless RLE | Lossless LZW, applied to the numbers from the palette |
| Colours in a single image | Up to 16.7 million in the 24-bit record | Up to 256, one per palette position |
| Colour depth | from 1 to 32 bits per pixel | 8 bits per pixel, as a position number |
| Transparency | An alpha channel in selected header variants | One palette position marked as transparent |
| Animation | No | Yes, as further frames each with its own delay |
| Origin | OS/2, and it entered Windows in 1990 with version 3.0 | CompuServe, 1987 |
| From which browser version they are read | from the first versions of Chrome, Firefox, Safari and Edge | from the first versions of Chrome, Firefox, Safari and Edge |
What does the converter do with a BMP file?
Seven things worth knowing before you drop a larger batch of images into the queue.
It reads three BMP variants
We checked them one by one: 24-bit with rows from the bottom, 24-bit with rows from the top and 8-bit with a palette. All three carried the same image and all three produced an identical output file weighing 835 bytes.The pixel count stays the same
An image of 800 by 600 pixels comes out as a GIF measuring 800 by 600 pixels. We read those values straight from the header of the finished file. Only the way colour is recorded changes, while the framing and the resolution stay untouched.The palette is built separately for each image
The encoder goes through every pixel and picks up to 256 colours that describe that particular frame best. An image with fewer colours receives a shorter palette: our graphic made of flat areas fitted into 64 positions.The result is written as a single frame
A BMP file carries one image, so the finished GIF also receives one frame. The header of the file carries the marking GIF89a, the same version of the format that every browser reads.Writing takes a fraction of a second
The encoder runs on your own computer, so the time depends on its power. In our measurement the 3000 by 2000 pixel photo was written in 0.62 seconds. The 800 by 600 pixel graphic was ready in 0.02 seconds. All five images went through the queue in 3.4 seconds, and the bar above the buttons shows how many files are already done.A single file of up to 100 MB
That is what the converter accepts from one file. For anything larger it shows the message File is too large (max 100 MB). An uncompressed BMP of roughly 5900 by 5900 pixels fits inside that limit.Very large images are fitted to the canvas
The browser canvas holds 16,384 pixels per side and around 268 million pixels in total. An image larger than that limit is scaled down proportionally by the tool, so that all of it fits into the result.
When should you pick GIF and when another format?
The image has flat areas of colour
Icons, diagrams, bar charts and interface screenshots hold a few hundred shades, so they fit into the palette with room to spare. This is where GIF does best: our screenshot went from 2.16 MB down to 37.0 KB.A photo has to keep its full range of shades
A photograph carries hundreds of thousands of colours, while the palette holds 256 positions. When faithful tonal transitions matter to you, reach for the BMP to JPG converter.The image is going onto a website
Here what counts is the file weight with the quality kept. The MDN guide advises reaching for PNG with still images, and for newer formats when larger savings matter.[7] Those files will be prepared by the BMP to WebP converter and the BMP to AVIF converter.The image has to keep a transparent background
Transparency is kept in the result together with the alpha channel, and PNG carries that channel in every variant of its record. The BMP to PNG converter will make such a file for you, writing the image losslessly and keeping the full 16.7 million shades.A scan is going by email or to an office
A scanned page is easier to send as a PDF than as an image. The BMP to PDF converter will make one: it lays every image on a separate A4 page, matching the orientation to the proportions of the photo.The way back
You can save a finished GIF with the full range of colours using the GIF to PNG converter. The same image in a lighter file is given by the GIF to WebP converter.
Convert other files to GIF
Convert BMP to other formats
Sources
- BMP file format — Wikipedia
- GIF — Wikipedia
- Graphics Interchange Format, version 89a — W3C
- gifenc, a GIF encoder for the browser — Matt DesLauriers
- HTMLCanvasElement: toBlob() method — MDN Web Docs
- Bitmap Storage — Microsoft Learn
- Image file type and format guide — MDN Web Docs
The file sizes in the tables were measured by running finished images through this converter in a browser, and we report them the way the tool counts them. What the page says about either format rests on the sources listed above.
Content last reviewed: · written and checked by the Arteon team
Common questions about turning BMP into GIF
Will I lose quality when I convert BMP to GIF?
It depends on how many colours the source file holds. A graphic with at most 256 colours passes into the palette in full — our graphic made of flat areas held 193 shades and 99.9% of its pixels left the converter with an unchanged colour. The camera photo held 785,216 different shades while the palette fits 256 positions, so every pixel receives the nearest available shade. The largest difference on a single channel came to 31 points out of 255 in our measurement.
Do my files reach a server?
No. The image is loaded by the page code inside your browser, drawn onto a canvas (the Canvas API) and passed from there to the gifenc encoder, which also runs locally. The file stays on your device for the whole time you work, and once you close the tab it disappears from the browser memory.
Why does GIF have 256 colours?
It follows from the build of the format itself. Next to a pixel, GIF stores the position number from the palette, and that number takes eight bits, so it holds values from 0 to 255.[3] Each palette position describes a full RGB colour, so the encoder picks those 256 shades from the whole range of 16.7 million.
What happens to transparency from a 32-bit BMP?
A 32-bit record with a BITMAPINFOHEADER is read by the browser as fully opaque — we checked this on our own test file, in which every pixel came off the canvas with an opacity of 255. When a file has to keep a transparent background, the BMP to PNG converter will prepare it, because PNG carries the alpha channel in every variant of its record.
How many files can I convert at once?
You can add as many files to the queue as you like, and the tool works through them one by one while showing the progress above the buttons. Five images weighing 29.3 MB in total went through our queue in 3.4 seconds. A single file may weigh up to 100 MB, and the total number of files depends on the memory of your device.
Will the finished GIF be animated?
A BMP file carries one image, so the result receives one frame and looks like an ordinary picture. Animation in the GIF format is built from several frames written one after another, each with its own delay.[3]
What decides the weight of the finished GIF?
The content of the image decides it. LZW compression writes repeating runs of pixels as a single code, so it works hardest on flat areas. A camera photo holds few of those repetitions and went down by 85% in our measurement, while the graphic made of flat areas went down by 99%.
I have a GIF file and I need an ordinary image from it. What should I do?
Use the GIF to PNG converter. You will get a file written losslessly, with the full range of 16.7 million shades, that every graphics program will open.

Help us improve our tools
Got an idea for a new feature, found a bug or want to suggest another tool? Write to us – we reply within 24 hours.







