BMP to GIF converter
Convert BMP images to GIF format
Bitmap to GIF swaps one very old Windows format for one very old web format, and the interesting part is the colour count. Your bitmap almost certainly holds 16.7 million possible colours; the GIF written here is quantised to a fixed 216-colour web-safe cube, matched by nearest neighbour with no dithering. Flat logos, pixel art and two-tone interface captures come through cleanly; photographs and gradients band visibly instead of showing the dithered noise a dedicated encoder would produce.
Key facts about BMP to GIF converter
| Palette | A fixed 6x6x6 cube in steps of 51 per channel, 216 entries padded to a 768-byte global colour table. It is not derived from your bitmap, so unusual hues shift to the nearest cube point. |
|---|---|
| Dithering | None. Each pixel picks its closest cube colour independently, keeping edges crisp on flat art and banding hard across any gradient. |
| Transparency | The written GIF carries no graphic control extension, so no index is marked transparent. Bitmaps are opaque anyway, so this direction loses nothing. |
| Animation | Impossible here. A bitmap holds one frame and the encoder writes one image descriptor, so the result is a still GIF. |
| Size behaviour | A 1920x1080 bitmap of 6,220,854 bytes usually becomes a few hundred kilobytes of flat art; a noisy photo defeats LZW and can land near two megabytes. |
| Fixed overhead | Every file starts with 792 bytes before a single pixel: the GIF89a signature, the logical screen descriptor, the full colour table and the image descriptor. |
| Opens the result | Everything, from Windows 95 image viewers to every chat client and email renderer in use today. |
| When not to convert | If the bitmap is a photograph, PNG keeps every colour at a comparable size and is the better target. |
What happens to your file
No part of this runs on a server. The bitmap becomes an object URL, is decoded by the Image element using your browser's built-in reader, and drawn into a canvas this page created. From there the GIF is assembled entirely in JavaScript in your tab: the palette match loop, the LZW compressor and the byte writer that emits the GIF89a blocks are all page script, not a remote service and not a WebAssembly module.
About this tool
- 1
Add your bitmap
Drop a .bmp file on the target area or click to browse. Twenty files per batch, 500 MB each.
- 2
Choose a size
A resize preset caps the long edge. Fewer pixels means less work for the palette matcher and a faster conversion.
- 3
Run the conversion
Press Convert. The per-file dots show which bitmap is being quantised and compressed.
- 4
Check for banding
Open the side-by-side view first. Banding in skies or shadows means this pair is wrong for your image.
- 5
Save the GIF
Download the file, or take the batch as converted-gif-files.zip built in the browser.
| Input and output | Takes .bmp only (image/bmp) and returns .gif with the image/gif type; any other extension is refused before decoding. |
|---|---|
| Conversion path | BMP to GIF runs in three steps: an <img> element decodes the bitmap, 24-bit and 32-bit variants alike; the pixels land on a 2D canvas in this tab; then getImageData feeds a palette mapper and an LZW encoder that live in the page. |
| Browser support | The bitmap side decodes in every current browser, while writing the GIF needs nothing from the browser, the encoder shipping inside the page. |
| Controls for this pair | No quality slider, GIF not being a lossy target here, so the max-dimension presets from 3840 down to 200 px are the only way to hold the GIF down in size against the BMP. |
| Batch, caps and naming | Twenty BMP files per run at 500 MB each; one result downloads as a single GIF, several as converted-gif-files.zip, zipped by JSZip 3.10 in page memory. |
| Device ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized BMP fails before any GIF bytes exist. |
- Bitmaps from old Windows drawing tools often already use a small palette and convert unchanged.
- With no dithering, anti-aliased text on a coloured background can pick up a stair-stepped halo; a plain background avoids it.
- Cap the long edge at 480 or 200 for forum and chat use, since GIF has no quality dial to turn down.
- If you need a transparent background, convert the bitmap to PNG and keep the alpha there.
- Fixed web-safe 216-colour quantisation
- LZW compressor written in page JavaScript
- GIF89a output with a single image block
- Twenty-file batches zipped locally
- Turning bitmap sprites from a legacy Windows program into something a wiki will display inline.
- Producing a tiny GIF of a two-colour diagram for an email signature.
- Feeding a retro-styled site or bulletin board that still expects GIF assets.
Related tools
View allNeed the opposite? Try GIF to BMP
Works well with this4
Other GIF tools12
Updated